Bug 1322303

Summary: External scoped signals do not work on WebLogic
Product: [Retired] JBoss BPMS Platform 6 Reporter: Tomas Livora <tlivora>
Component: jBPM CoreAssignee: Alessandro Lazarotti <alazarot>
Status: CLOSED EOL QA Contact: Radovan Synek <rsynek>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.3.0CC: ealcaniz, lpetrovi
Target Milestone: ER3   
Target Release: 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-27 20:05:20 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
WebLogic 12.1 server log
none
Test log none

Description Tomas Livora 2016-03-30 09:19:15 UTC
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

Comment 1 Tomas Livora 2016-03-30 09:23:38 UTC
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.

Comment 2 Maciej Swiderski 2016-04-01 10:56:37 UTC
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

Comment 3 Tomas Livora 2016-04-18 12:25:09 UTC
Verified on BPM Suite 6.3.0 ER3