I have a few questions regarding async nodes and their usage .
1) What is the benefit of using JmsMessageServiceFactoryImpl instead of the DbMessageServiceFactory for async nodes. Is it for automatic rollback of the JTA transaction in case of RuntimeException (in the MDB) and thus it offers a retry mechanism ?
2) If 2 threads "signal" simultaneously on a ProcessInstance or token with an async state node, will it result in 2 JMS messages sent with one processed after the other (without guaranteed order) and thus 2 sequential signals ?
3) Would you recommend async nodes for transaction demarcations within a JBPM process ? (provided that jBPM is configured to start JTA transactions and accessed resources are enrolled in the current JTA transaction.)
For instance if i have 3 action nodes A,B and C and I'd like to execute A,B within the same transaction and C in an another. Could i use async nodes for that (A and C being async)?
4) Actually to start a jBPM workflow or resume it we used a JMS queue with a MDB that performs a signal on the token where we could have designed all our worfklows with async state nodes. Now, i think we should have opted for async nodes. Simply because timers and async nodes are Jobs that are started by the JobExecutorThread that at least handle locking between jobs.