Hide Forgot
Created attachment 1141631 [details] WebLogic 12.1 server log Description of problem: When an external scoped signal from a process started by job executor (org.jbpm.process.core.async.AsyncStartProcessCommand) is thrown, it is not caught by the parent process. Version-Release number of selected component (if applicable): 6.3.0 ER1 (and ER2) Steps to Reproduce: 1. Run BPM Suite on WebLogic. 2. Start a process which runs another process using async task. 3. Throw an external scoped signal from subprocess. 4. Try to catch the signal in the parent process. Actual results: The signal is not received and the parent process waits for it. Expected results: The signal should be received and the parent process should finish. Additional info: The problem only occurs on WebLogic. The same process works without any problems on EAP and WebSphere. JMS signaling is configured properly because similar process which uses subprocess call instead of async task to run a new process finishes as expected. jBPM executor is also set up properly since subprocesses are actually run (can be seen in console output) but the signals are not received. You can find the tests in our test suite: https://gitlab.mw.lab.eng.bos.redhat.com/bxms/brms/blob/prod-6.3/test-jbpm-integration/src/test/java/org/jboss/qa/bpms/jbpm/integration/client/process/CJMSMultiInstanceSubProcessesTest.java But they simply use the same processes that are shown in this blog post: http://mswiderski.blogspot.cz/2015/08/asynchronous-processing-with-jbpm-63.html
Created attachment 1141635 [details] Test log Both logs are from simplified test run when testAsyncStart() method was executed with only one subprocess. You can see PrintOutCommand in the server log which means the subprocess was actually started. But the test fails because the parent process is not finished. When you log into the Business Central and send the right signal to the active process instance, it will finish.
this was caused by weblogic that does not ignore transacted attribute when used as part of transactional/jta queue connection factory. So made it parameterized where default is false for transacted jms session as this works properly then on all container, though it might be confusing when reading the code. jbpm master: https://github.com/droolsjbpm/jbpm/commit/3646dc18a0a07c61923b3eaddce01f6965091bdc 6.4.x: https://github.com/droolsjbpm/jbpm/commit/42a652ec3c0c3a1a804451984a4133ec632648a6
Verified on BPM Suite 6.3.0 ER3