begin process at 2012 02 10 09:44:29
  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) ...
mardi 18 mai 2010 à 00:36:16 | Re : gestion de la persistance des workflows : réhydratation

samsoumitta

Bonjour,
je suis entrain de développer une application de GED, donc pour gérer le cycle de vie du document je doit développer un workflow mais j'ai rencontrer pas mal de problème car c'est la 1ère application que je développe en ASP.Net C# et je suis très pressée par le temps.
SVP -si ça ne vous dérange pas- m'envoyez le code source du workflow qui permet de gérer le cycle de vie du document à cette adresse : samsoumitta@live.fr


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


Répondre à ce message

Sujets en rapport avec ce message

Comment récupérer le runtime courant [ par samsoumitta ] Bonjour, je suis entrai de développer un workflow en utilisant Windows workflow Fondation v3.0 le sauvegarde du workflow dans la base marche bien mai codes des classes de persistance pour les objets [ par Riona10 ] salut bon je travaille avec vs2008.net et oracle 10g comme bd elle est deja connecté ma base mais le probleme que j'ai d'une part les interfaces et le imprimer un pdf via workflows [ par Yassineab ] Bonjour, je n'arrive pas à imprimer un pdf que je le récupéré d'une liste de sharepoint via workflows qui se déclenche automatiquement dés qu'un nouve Windows Workflow Foundation - Memory leak ? [ par yoannd ] Je vous propose un petit test : - Créez un nouveau projet "Application console de workflow", - Dans program.cs, rajoutez "while(true)" devant "Workflo 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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,406 sec (4)

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