[jboss-user] [jBPM] - StaleObjectStateException

Alejandro Guizar do-not-reply at jboss.com
Fri Aug 20 08:52:35 EDT 2010


Alejandro Guizar [http://community.jboss.org/people/alex.guizar%40jboss.com] replied to the discussion

"StaleObjectStateException"

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

--------------------------------------------------------------
Gregory, stale state exceptions are to be expected if your process definition contains concurrent paths. Managing these exceptions has been the subject of multiple issues. In  https://jira.jboss.org/browse/JBPM-1952 JBPM-1952 the JMS message service was reviewed and the queue configuration was changed as follows.
JBossMQ (AS 4.x)
<mbean code="org.jboss.mq.server.jmx.Queue"
  name="jboss.mq.destination:service=Queue,name=JbpmJobQueue">
  <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
  <!-- JBPM-1952 a small redelivery delay goes a long way towards mitigating
       stale state exceptions and deadlocks under heavy concurrency conditions -->
  <attribute name="RedeliveryDelay">1000</attribute>
</mbean>

JBoss Messaging (AS 5.x)
<mbean code="org.jboss.jms.server.destination.QueueService"
  name="jboss.messaging.destination:service=Queue,name=JbpmJobQueue"
  xmbean-dd="xmdesc/Queue-xmbean.xml">
  <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
  <depends>jboss.messaging:service=PostOffice</depends>
  <!-- JBPM-1952 a small redelivery delay goes a long way towards mitigating
       stale state exceptions and deadlocks under heavy concurrency conditions -->
  <attribute name="RedeliveryDelay">1000</attribute>
</mbean>

In  https://jira.jboss.org/browse/JBPM-2790 JBPM-2790 the job executor and the join node were improved as follows.
* End concurrent token when it enters the join node. Check all children of the parent token have ended when the join executes.
* Make a small pause in the job executor thread before retrying a failed  job. Retrying a failed job too soon will likely produce another SOSE or  deadlock.
For best results, the join node should be made asynchronous in order to reduce the window of opportunity for a locking conflict.

--------------------------------------------------------------

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

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20100820/58a79664/attachment.html 


More information about the jboss-user mailing list