Bug 1322303 - External scoped signals do not work on WebLogic
Summary: External scoped signals do not work on WebLogic
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BPMS Platform 6
Classification: Retired
Component: jBPM Core
Version: 6.3.0
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ER3
: 6.3.0
Assignee: Alessandro Lazarotti
QA Contact: Radovan Synek
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-30 09:19 UTC by Tomas Livora
Modified: 2020-03-27 20:05 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-03-27 20:05:20 UTC
Type: Bug


Attachments (Terms of Use)
WebLogic 12.1 server log (191.92 KB, text/plain)
2016-03-30 09:19 UTC, Tomas Livora
no flags Details
Test log (116.10 KB, text/plain)
2016-03-30 09:23 UTC, Tomas Livora
no flags Details

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


Note You need to log in before you can comment on or make changes to this bug.