Hide Forgot
Affects: Release Notes Date of First Response: 2010-01-27 16:22:11 Help Desk Ticket Reference: https://enterprise.redhat.com/issue-tracker/379428 Workaround: Workaround Exists Workaround Description: Call JbpmContext.setRollbackOnly() in the action handler project_key: SOA In case that Job execution of an async node is processed by JobExecutor, the transaction is not rolled back even if the action handler throws Exception/RuntimeException. The transaction is commtted and no retry happens. It looks inconsistent with docs: http://www.redhat.com/docs/en-US/JBoss_SOA_Platform/4.3.CP02/html-single/JBPM_Reference_Manual/index.html#jbpmsbuiltinasynchronousmessaging ============ If execution of a command message fails, the transaction will be rolled back. After that, a new transaction will be started that adds the error message to the message in the database. The command executor filters out all messages that contain an exception. ============ I've attatched a reproducer. - unzip jobexecution.zip - modify build.properties - ant deploypar - ant deploy - ant ejbclient (or access jbpm-console to start process instance) - access jbpm-console to check process instance's id which is created by the action handler (which should be rolled back)
Attachment: Added: jobexecution.zip
Link: Added: This issue depends JBPM-2767
Link: Removed: This issue depends JBPM-2767
Link: Added: This issue incorporates JBPM-2767
Link: Added: This issue related SOA-1882
added 5.0.0.ER7 as affects version
Link: Added: This issue incorporates JBPM-2691
JBPM-2767 is in effect a duplicate of JBPM-2691, incorporating the latter issue.
Approved for SOA 4.3 CP03. Please make sure it gets assigned to the appropriate person.
JBPM-2691 is resolved. SOA-P team, please close as appropriate.
The following draft text has been added to the Resolved Issues section of the Release Notes: SOA-1880 https://jira.jboss.org/jira/browse/JBPM-2767 If an async node was being processed by the JobExecutor and the action handles threw an exception, the transition was committed. As a consequence, no attempt was made to re-process it. To fix this issue, JbpmContext.setRollbackOnly() is now called by the action handler. As a result, if an exception occurs during job execution, the exception is stored and the job is automatically reprocessed for a determined number of retries. (This number is set in jbpm.cfg.xm.)
Verified in 4.3.CP03 ER1