Angel: si, cada activity la puede ejecutar en un thread diferente, es
mas, los eventos de wf los puede lanzar en thread diferentes a la
activity (lo que no vi hasta ahora es que lo dispare en el mismo
thread al evento WorkflowStarted y a la activity).
----------------------------------------------------------------------------------------------
Lo que dicen de usarlo en cada activity, sería algo como:
//Esta es la misma factory que se inyecta en los DAOs para que hagan
el GetCurrentSession()
ISessionFactory sessionFactory = ServiceLocator.GetInstance<ISessionFactory>();
using (ISession session = sessionFactory.OpenSession())
{
CurrentSessionContext.Bind(session);
// Ahora si el código de la activity
}
CurrentSessionContext.Unbind(sessionFactory);
¿existe algo de AOP para WF?... lo que estamos haciendo por ahora es
que la activity ejecuta un servicio de aplicación que ya tiene un
aspecto que si no hay session le abre una y luego la cierra (pero me
gustaba mas la idea de manejarlo desde WF para hacer algo como el
session per request en web... pero cada vez parece mas complicado...
además, ya nos iríamos olvidando de las transacciones distribuidas
¿no?
Nelo.
2010/5/27 Carlos Peix <[email protected]>:
> Hola Angel,
> Al menos con la version de WWF que viene hasta NET 3.5, no creo que se pueda
> puesto que WWF serializa la instancia de workflow y la almacena en la base
> de datos, por lo tante toda variable de esa instancia debe ser serializable,
> y ya es sabido que la ISession no se lleva bien con la serializacion.
> Puede ocurrir, por otra parte, que entre la ejecucion de una actividad y la
> otra pasen varios dias y, eventualmente, rebooteos del servidor.
> Ya le decia yo a Nelo (en mail privado) que me parece que lo mejor es
> utilizar el recientemente acuñado patron SpA (Session per Activity).
> ----------------------------------
> Carlos Peix
>
> 2010/5/27 Angel Java Lopez <[email protected]>
>>
>> Hola gente!
>>
>> Nelo, no he trabajado con ambas tecnologias a la vez. Pero me gustaria
>> extender un poco la pregunta.
>>
>> Uno puede poner NH session (crearla, usarla, cerrarla) en una Activity (un
>> paso del workflow). Habria que probar, pero no deberia tener mayor problema.
>>
>> El problema es si necesitamos tener la NH Session creada en la activity
>> A1, guardarla en una variable de instancia de nuestro workflow, usarla en el
>> proximo paso A2, ver de tomar una decision If en A3, seguir por el camino
>> A3A o A3B segun el resultado del if, etc... hasta llegar a An, y ahi cerrar
>> la session. Digamos que no tenemos paso con espera (que cada paso sigue al
>> precedente). Que yo recuerde, el WF engine puede decidir ejecutar cada paso
>> en un thread distinto.
>>
>> Preguntas:
>> - Sigue siendo asi, el WF engine ejecuta cada paso en un thread
>> posiblemente distinto? (pregunta OT, pero que asegurara poner la pregunta
>> inicial mas en perspectiva) Yo recuerdo que era asi, pero no tengo una
>> confirmacion aca.
>> - Si es asi, un Session de NHibernate nacida en el thread 1, puede luego
>> ejecutar algo en el thread 2? No es el caso de threads "simultaneos": son,
>> digamos, secuenciales.
>>
>> Nos leemos!
>>
>> Angel "Java" Lopez
>> http://www.ajlopez.com
>> http://twitter.com/ajlopez
>>
>>
>> 2010/5/27 Nelo Pauselli <[email protected]>
>>>
>>> Hola gente, ¿alguien ha usado workflow foundation con nh? ¿cómo ha
>>> manejado el ciclo de vida de la session?
>>>
>>> Saludos.
>>> Nelo
>>>
>>> --
>>> Para escribir al Grupo, hágalo a esta dirección:
>>> [email protected]
>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>>
>> --
>> Para escribir al Grupo, hágalo a esta dirección:
>> [email protected]
>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano