In my deployment, I use a pool of MDBs to start a number of workflows.
The workflows progress from node to node, collecting objects in hibernate session, and at
some state they fire a message to (another) queue. After that, the finally {
jbpmContext.close() } is reached, and the session begins to flush.
In the meantime, in some other place in the galaxy, another pool of MDBs receives the
messages and starts processing on them. First thing that is done is
jbpmContext.loadProcessInstanceForUpdate(id); at which state the execution fails with
Hibernate exceptions, like
org.hibernate.HibernateException: null index column for collection:
org.jbpm.graph.exe.ProcessInstance.instances and
org.hibernate.LazyInitializationException: illegal access to loading collection
At this stage, I cannot even end or cancel my token, since the processInstance is not
loaded correctly.
As a result, my workflow stays in zombie state and actually never ends.
We use JBoss 4.0.5, Hibernate, Spring, MySQL (tried with all isolation levels) and jBPM
3.2.
Any suggestions on how to make sure the processInstance is fully saved to the DB before I
read it? No mutexes can help here because of clustered deployment.
Thanks in advance.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4063578#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...