jboss-user
[Arriba] [Todas las Listas]

[jboss-Usuario] [jBPM] - jPBM 5.1, los procesos persistentes consiguen a

To: User development <jboss-user@xxxxxxxxxxxxxxx>
Subject: [jboss-Usuario] [jBPM] - jPBM 5.1, los procesos persistentes consiguen acabados sin consideración a sesión
From: Miljenko Norsic <do-not-reply@xxxxxxxxx>
Date: Wed, 14 Sep 2011 05:06:54 -0400
Auto-submitted: yes
Delivery-date: Wed, 14 Sep 2011 05:08:06 -0400
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://lists.jboss.org/pipermail/jboss-user>
List-help: <mailto:jboss-user-request@lists.jboss.org?subject=help>
List-id: The JBoss User main mailing list <jboss-user.lists.jboss.org>
List-post: <mailto:jboss-user@lists.jboss.org>
List-subscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=subscribe>
List-unsubscribe: <https://lists.jboss.org/mailman/listinfo/jboss-user>, <mailto:jboss-user-request@lists.jboss.org?subject=unsubscribe>
Reply-to: The JBoss User main mailing list <jboss-user@xxxxxxxxxxxxxxx>
Sender: jboss-user-bounces@xxxxxxxxxxxxxxx
*Miljenko *Norsic [*http://Comunidad.*jboss.*org/Personas/*mnorsic] creó la discusión

"*jPBM 5.1, los procesos persistentes consiguen acabados sin consideración a sesión"

para ver la discusión, visita: *http://comunidad.*jboss.*org/Mensaje/626390#626390

--------------------------------------------------------------
*Hi,

he hecho una muestra pequeña *app que almacena sesión de conocimiento a un *H2 *database, basado en *jBPM guía de usuario.#Nom}
*PoolingDataSource *ds = nuevo *PoolingDataSource();
 *ds.*setUniqueName("*jdbc/*BitronixJTADataSource");
 *ds.*setClassName("*org.*h2.*jdbcx.*JdbcDataSource");
 *ds.*setMaxPoolSize(3);
 *ds.*setAllowLocalTransactions(Cierto);
 *ds.*getDriverProperties().Puesto("usuario", "*sa");
 *ds.*getDriverProperties().Puesto("contraseña", "");
 *ds.*getDriverProperties().Puesto("URL", "*jdbc:*h2:*tcp://*localhost//prueba");
 *ds.*init();

 *EntityManagerFactory *emf = Persistencia.*createEntityManagerFactory("*org.*jbpm.Persistencia.*jpa");

 // Carga arriba de la base de conocimiento
 *KnowledgeBase *kbase = *readKnowledgeBase();
 Entorno *env = *KnowledgeBaseFactory.*newEnvironment();
 *env.Conjunto(*EnvironmentName.FÁBRICA_de DIRECTOR_de la ENTIDAD, *emf);
 *env.Conjunto(*EnvironmentName.DIRECTOR_de TRANSACCIÓN, *TransactionManagerServices.*getTransactionManager());

 *Integer *sessionId = *null;
 Si (*args != *null && *args.Longitud == 1)
 #unknown{^*sessionId = *Integer.*valueOf(*args[0]);
 }
 *StatefulKnowledgeSession *ksession = *null;
 si (*sessionId == *null)
 // #adj_nom #nuevo
 *ksession = *JPAKnowledgeService.*newStatefulKnowledgeSession(*kbase, *null, *env);
 } más
 // #verbcj_inf existir sesión de *database
 *ksession = *JPAKnowledgeService.*loadStatefulKnowledgeSession(*sessionId, *kbase, *null, *env);
 }
  // inicio la transacción
 *UserTransaction *ut = (*UserTransaction) nuevo *InitialContext().*lookup("*java:*comp/*UserTransaction");
 *ut.Empieza();

  // inicio 5 proceso nuevo casos
*ksession.*startProcess("*com.Muestra.*bpmn.hola");
*ksession.*startProcess("*com.Muestra.*bpmn.hola");
*ksession.*startProcess("*com.Muestra.*bpmn.hola");
*ksession.*startProcess("*com.Muestra.*bpmn.hola");
*ksession.*startProcess("*com.Muestra.*bpmn.hola");
 *ksession.Coloca();
 *ut.Comete();#nom}

Para cada sesión de conocimiento, 5 procesos son creados, y que el proceso espera para una señal (no es completado).

Tengo otra aplicación que carga sesión de conocimiento de *database (por utilizar ID que fue proporcionado a generación de sesión del conocimiento), y que *spawns una señal:#nom}
*ksession.*signalEvent("Señal", *null);#nom}

Cuándo la señal es enviada, eficazmente corre todos casos de proceso a conclusión, y que es *OK.

Pero cuándo he por ejemplo más *stateful las sesiones persistidas, y cada cual tiene su conjunto propio de procesos, llamando#nom}*ksession.*signalEvent("Señal", *null);{#nom_nom_nom}      de todas las  sesiones a conclusión, no sólo los procesos que pertenecen a aquella sesión particular.

Otra cosa he *spotted: cuándo cargo sesión de conocimiento de *database, código {de método}*ksession.*getProcessInstances()#Nom} regresa lista vacía.
Aquello es extraño porque a la vez código {de método}*ksession.*getProcessInstance(1)#nom} correctamente carga caso de proceso de *database.

*Thanks,
*Miljenko
--------------------------------------------------------------

Respuesta a este mensaje por ir a Comunidad
[*http://comunidad.*jboss.*org/Mensaje/626390#626390]

Empieza una discusión nueva en *jBPM en Comunidad
[*http://comunidad.*jboss.*org/Escoge-contenedor!Entrada.*jspa?*contentType=1&*containerType=14&contenedor=2034]

Miljenko Norsic [http://community.jboss.org/people/mnorsic] created the discussion

"jPBM 5.1, persistent processes get finished without regard to session"

To view the discussion, visit: http://community.jboss.org/message/626390#626390

--------------------------------------------------------------
Hi,

I've made a small sample app that stores knowledge session into a H2 database, based on jBPM user guide.

{code}
PoolingDataSource ds = new PoolingDataSource();
 ds.setUniqueName("jdbc/BitronixJTADataSource");
 ds.setClassName("org.h2.jdbcx.JdbcDataSource");
 ds.setMaxPoolSize(3);
 ds.setAllowLocalTransactions(true);
 ds.getDriverProperties().put("user", "sa");
 ds.getDriverProperties().put("password", "");
 ds.getDriverProperties().put("URL", "jdbc:h2:tcp://localhost/~/test");
 ds.init();

 EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");

 // load up the knowledge base
 KnowledgeBase kbase = readKnowledgeBase();
 Environment env = KnowledgeBaseFactory.newEnvironment();
 env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
 env.set(EnvironmentName.TRANSACTION_MANAGER, TransactionManagerServices.getTransactionManager());

 Integer sessionId = null;
 if (args != null && args.length == 1) {
 sessionId = Integer.valueOf(args[0]);
 }
 StatefulKnowledgeSession ksession = null;
 if (sessionId == null) {
 // new session
 ksession = JPAKnowledgeService.newStatefulKnowledgeSession(kbase, null, env);
 } else {
 // load existing session from database
 ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env);
 }
  // start the transaction
 UserTransaction ut = (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
 ut.begin();

  // start 5 new process instances
ksession.startProcess("com.sample.bpmn.hello");
ksession.startProcess("com.sample.bpmn.hello");
ksession.startProcess("com.sample.bpmn.hello");
ksession.startProcess("com.sample.bpmn.hello");
ksession.startProcess("com.sample.bpmn.hello");
 ksession.dispose();
 ut.commit();
{code}

For each knowledge session, 5 processes are created, and that process waits for a signal (it is not completed).

I have another application that loads knowledge session from database (by using ID that was provided upon knowledge session generation), and that spawns a signal:
{code}
ksession.signalEvent("Signal", null);
{code}

When signal is sent, it effectively runs all process instances into completion, and that is OK.

But when I have for example more stateful sessions persisted, and each has its own set of processes, calling {code}ksession.signalEvent("Signal", null);{code} runs processes from all sessions into completion, not only the processes that belong to that particular session.

Another thing I've spotted: when I load knowledge session from database, method {code}ksession.getProcessInstances(){code} returns empty list.
That is weird because at the same time method {code}ksession.getProcessInstance(1){code} correctly loads process instance from database.

Thanks,
Miljenko
--------------------------------------------------------------

Reply to this message by going to Community
[http://community.jboss.org/message/626390#626390]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
*jboss-Usuario *mailing lista
*jboss-user@xxxxxxxxxxxxxxx
*https://listas.*jboss.*org/*mailman/*listinfo/*jboss-Usuario
_______________________________________________
jboss-user mailing list
jboss-user@xxxxxxxxxxxxxxx
https://lists.jboss.org/mailman/listinfo/jboss-user
<Anterior por Tema] Tema Actual [Siguiente por Tema>