[jbpm-dev] dispose sessions in PerProcessInstanceRuntimeManager
Maciej Swiderski
mswiders at redhat.com
Thu Aug 15 04:09:10 EDT 2013
Jeff, I pushed fix to master, do you mind giving it a try in your setup?
Hope it fixes the issue.
Thanks
Maciej
W dniu 12.08.2013 18:15, Jeffrey Bride pisze:
> thanks for the explanation. makes sense.
> i've created this BZ
> <https://bugzilla.redhat.com/show_bug.cgi?id=996205> .
>
> thanks! jeff
>
> ------------------------------------------------------------------------
>
> *From: *"Maciej Swiderski" <mswiders at redhat.com>
> *To: *"Jeffrey Bride" <jbride at redhat.com>
> *Cc: *"jbpm-dev" <jbpm-dev at lists.jboss.org>
> *Sent: *Sunday, August 11, 2013 8:19:50 AM
> *Subject: *Re: [jbpm-dev] dispose sessions in
> PerProcessInstanceRuntimeManager
>
> Jeff,
>
> the calls are there to cover cases when the creation of
> RuntimeManager are not executed as part of an active transaction
> since only then the transaction synchronization is registered. I
> guess that in your case you are within container manager
> transaction and thus tx synchronization is registered which causes
> the behavior you described.
> I'll check that to ensure that the init method will not call the
> dispose/destroy if it's within active transaction.
>
> Just for information as that might not be directly clear why the
> init method creates session and the disposes/destroys it - it is
> to ensure that start events will be properly initialized - e.g.
> timer start event based processes will be by that notified and
> executed according to definitions.
>
> Maciej
>
> W dniu 09.08.2013 19:17, Jeffrey Bride pisze:
>
> Hi.
> I'm doing a deep dive into the new jbpm6
> PerProcessInstanceRuntimeManager functionality.
> Impressive.
>
>
> One minor observation is that it seems that both the
> engine.getKieSession().destroy(); and
> disposeRuntimeEngine(engine); function calls in the init()
> <https://github.com/droolsjbpm/jbpm/blob/master/jbpm-runtime-manager/src/main/java/org/jbpm/runtime/manager/impl/PerProcessInstanceRuntimeManager.java#L261>
> function are redundant.
> Neither of these calls seem necessary.
> Previous to these function calls, an instance of
> DisposeSessionTransactionSynchronization() was already
> registered .... which takes care of appropriately disposing
> the session after the JTA transaction has committed.
> Subsequently, when either (or both) of these redundant calls
> to close the session prior to the transaction has committed,
> the following exception occurs:
>
> java.lang.IllegalStateException: Illegal method call. This
> session was previously disposed.
> at
> org.drools.core.reteoo.DisposedReteooWorkingMemory.getProcessRuntime(DisposedReteooWorkingMemory.java:262)
> [drools-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
> at
> org.drools.core.impl.StatefulKnowledgeSessionImpl.getProcessRuntime(StatefulKnowledgeSessionImpl.java:868)
> [drools-core-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
> at
> org.drools.persistence.SingleSessionCommandService$SynchronizationImpl.afterCompletion(SingleSessionCommandService.java:504)
> [drools-persistence-jpa-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
> at
> org.drools.persistence.jta.JtaTransactionSynchronizationAdapter.afterCompletion(JtaTransactionSynchronizationAdapter.java:22)
> [drools-persistence-jpa-6.1.0-SNAPSHOT.jar:6.1.0-SNAPSHOT]
> at
> com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.afterCompletion(SynchronizationImple.java:96)
> at
> com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.afterCompletion(TwoPhaseCoordinator.java:402)
>
>
> I'm testing in an EAP6.1 environment using JTA transactions
> provided by the app server.
> commenting out those apparently redundant function calls does
> not seem to cause any other negative side effects and the
> session is still closed by the
> DisposeSessionTransactionSynchronization instance.
>
> jeff
>
> --
> Jeffrey Bride
> Senior Principal Solution Architect
> Global Partner Enablement
> Red Hat (www.redhat.com)
> cell: 303.523.7885
>
>
>
> _______________________________________________
> jbpm-dev mailing list
> jbpm-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/jbpm-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jbpm-dev/attachments/20130815/eeac6c95/attachment.html
More information about the jbpm-dev
mailing list