begin process at 2010 02 10 02:51:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Autre

 > 

gestion de la persistance des workflows : réhydratation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

gestion de la persistance des workflows : réhydratation

jeudi 12 février 2009 à 11:06:13 | gestion de la persistance des workflows : réhydratation

oo7jb5

Bonjour à tous,

Je développe actuellement un workflow permettant de gérer le cycle de vie de documents (C#, VS2008).
Ceux-ci peuvent prendre différents statuts (draft, submitted, validated/rejected).

Tout fonctionne correctement, hormis la persistance, et tout particulièrement le processus de "réhydratation".

Je vais droit au but :
- au delà de 2-3 instances de worflows, lorsque je lance l'appli, je reçois l'exception :
**********************************************************************
An unhandled exception of type 'System.Workflow.Runtime.WorkflowOwnershipException' occurred in System.Workflow.Runtime.dll

Additional information: This workflow is not owned by the WorkflowRuntime. The WorkflowRuntime's ownership has expired, or another WorkflowRuntime owns the workflow.
**********************************************************************
effectivement, dans la table instanceState, il y a plusieurs ownerId. Comment gérer ce problème d'appartenance, sachant que l'appli devra, à terme, pouvoir être utilisée depuis plusieurs postes simultanément ?

- assez fréquemment, les workflows terminés ("completed") ne sont pas supprimés de la table instanceState, alors que la condition finale est vérifiée (WhileActivity --> IsValidated==false)
d'autre part, le status de ces mêmes WFs reste à 0 ("running") dans instanceState.

Voici le code utile :



lstWIs = new List<Guid>();

// Persistance management :
// déchargement en cas de pause du WF (UnloadOnIdle), déchargement sur la BD toutes les 30"
SqlWorkflowPersistenceService dbService = new SqlWorkflowPersistenceService(ConfigurationManager.ConnectionStrings["WFStateCS"].ToString(), true, TimeSpan.MaxValue, new TimeSpan(0, 0, 30));

// Création du runtime
wfRuntime = new WorkflowRuntime();wfRuntime.AddService(dbService);

// Continuation des WFs existants (persistés)
IEnumerable<SqlPersistenceWorkflowInstanceDescription> instances = dbService.GetAllWorkflows();
foreach (SqlPersistenceWorkflowInstanceDescription insDesc in instances)
{     
    wiPersisted = wfRuntime.GetWorkflow(insDesc.WorkflowInstanceId);
    lstWIs.Add(insDesc.WorkflowInstanceId);
    tmpGuid = Record.RecordDAO.GetInstance().GetRecId(wiPersisted.InstanceId);
    if (tmpGuid != Guid.Empty)
    // Ce workflow est actif (utilisé par un enregistrement) et doit être relancé
    {
        wiPersisted.Load(); // (re)chargement du WF
    }
}

 


Notez que, malgré le UnloadOnIdle = true, je décharge quand même manuellement tous les WFs actifs (présents dans la liste "lstWIs") sur l'event form_closed.

Merci d'éclairer ma lanterne (un petit sample éventuellement serait le bienvenue...) !

Etienne
lundi 23 février 2009 à 15:09:20 | Re : gestion de la persistance des workflows : réhydratation

oo7jb5

Réponse acceptée !
Problème "réglé" en utilisant le déchargement manuel (UnloadOnIdle = false) ...


Cette discussion est classée dans : workflow, persistance, workflowruntime, workflows, réhydratation


Répondre à ce message

Sujets en rapport avec ce message

Persistance données user control [ par titeoe ] Hello, Je voudrais savoir comment garder la persistance d'infos qui se truvent dans un user control.exemple : page.aspx contient le usercontrol uc.asm Connexion & persistance [ par rastapaye ] Bonjour,Imaginons que je crée une classe # dont le constructeur demande une connexion ouverte à la base de données.Est-ce que la connection reste ouve Type Workflow Foundation [ par Kernel_panic ] Bonjour,j'ai un type non reconnu dans .NET : private SequentialWorkflow sequentialWorkflow;je ne sais pas quelle librairie inclure pour le type Sequen Au secours, un problème sérieux :VS 2005 ou troie ? [ par DalMed ] Bonjour <p class="MsoNormal" style="DIRECTION: ltr; unicode Workflow Multi hote [ par lyeslyes ] Bonjour tous le monde;)j ai besoin d'une aide sur les workflow (WF)je developpe une application (workfoow ) ou mon workflow dois communiquer avec deux [.Net 3.0] Workflow Foundation [ par lyeslyes ] Bonjour rous le monde,euh , voila je developpe une application (WF) qui dois communiquer avec plusieur hote (1 instance/n host) ,  pour simplifier mon [WF] Problème modification paramètre [ par Psych0 ] Bonjour à toutes et à tous,Je suis actuellement en stage dans une entreprise ou ma tache est de faire un portage du Workflow de l'entreprise développé workflow execution rehosting [ par Selmih ] Bonjour tout le monde Je sius entrain de developper une app windows form ds laquel j'ai rehost  workflow designer ,donc avec des taches prédefint l'ut workflow rehosting execution [ par Selmih ] Bonjour tout le monde Je sius entrain de developper une app windows form ds laquel j'ai rehost workflow designer ,donc avec des taches prédefint l'uti


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales