Description of problem:
When I start any process via JMS API and look into Business central Process Instances view, the initiator of the process instance is unknown.
For REST API the initiator is set correctly. It happens with my own JMS client and also with Jbpm remote JMS client created by RemoteJmsRuntimeEngineFactory. Of course, I use userid and password via this constructor
RemoteJmsRuntimeEngineFactory(deploymentId, connectionFactory, sessionQueue, taskQueue, responseQueue, userId, password, 5 * 1000)
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Start any process via JMS API
2. Open Process Instances view in Business central
3. See the initiator of the process instance is unknown
Please add a test! Thanks.
Thanks Ivo -- what initially wasn't clear to me is what you meant by "initiator".
This no longer has a target release of 6.0.0.
And here is part of server log to see the changes are there and the backup identity bean contains "null"/unknown user:
15:03:14,456 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Added classes from org.jboss:integration:1.2.0-SNAPSHOT to serialization context.
15:03:14,525 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Creating identity provider for user: null
15:03:14,527 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-4 (HornetQ-client-global-threads-888418442)) Producing backup identity bean for user: unknown
15:03:14,530 INFO [stdout] (Thread-4 (HornetQ-client-global-threads-888418442)) type = java.lang.Long
15:03:14,683 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-1 (HornetQ-client-global-threads-888418442)) Added classes from org.jboss:integration:1.2.0-SNAPSHOT to serialization context.
15:03:14,745 DEBUG [org.kie.services.remote.jms.RequestMessageBean] (Thread-1 (HornetQ-client-global-threads-888418442)) Creating identity provider for user: null
Ivo, what version of BPMS did you test this with (on feb 19th)?
Maciej recently made changes to code that has to do with this.
I tested it in BPMS 6.0.1.ER1.
I have just noticed that initiator is unknown also when I call a subprocess (via REST API where it ). Is the behavior correct or the initiator should be the same as for the parent process?
I believe you're not setting user on the JaxbCommandsRequest that is required to properly set user when performing operations. As you can see here: https://github.com/droolsjbpm/droolsjbpm-integration/blob/6.0.x/kie-remote/kie-services-client/src/main/java/org/kie/services/client/api/command/AbstractRemoteCommandObject.java#L178
user is automatically set for JMS operations when using kid-remote-client and same should be applied when constructing JaxbCommandsRequest object manually.
Could you please check if that is the case?
As we discussed with Maciej, I agreed with him that JMS API is designed to be more flexible for system to system integrations, so it is intended to be able to set an initiator as it is needed and the initiator can be different to a requester.
SetUser method in JaxbCommandsRequest works exactly as Maciej said in the comment 9 above.
Using 6.0.1.Final, this still verifies. Using JMS, even using setUser in the request, the initiator is set to "unkonw"
For future reference:
This has been fixed in 6.0.2.Final, with the introduction of SSL enabled JMS queues in order to send the appropriate login information for the intiator.
Can you point me some documentation to correctly configure SSL JMS Queues? Also where we can find the 6.0.2.Final, as I only found the 6.0.1.Final.
This bug only applies to BPMS.
BPMS 6.0.2 has not been released yet.