In-process reentrance is NOT supported for JMS, MSMQ and MQ Series transports

Process re-entrance refers to calling of same method of the business service again before the first call has not been completed.

Some of the code in Siebel is written to work on shared pool of resources, thus if same code is called again the shared pool either release the lock that is made by the first call or the second call creates deadlock between them.

This behavior is very much prominent when a receiver component executes workflow on receiving xml message from queue, and this workflow process again executes Receive method of the same business service. This doesn't halts the execution but it start listening to queue for which last Receive method was called.

So if second call passes arguments to receive message from different queue then receiver component will also start listening to this new queue. I was completely unaware of this behavior until one of the JMS receiver component stopped listening to messages from one queue, but started listening on the other. It was also clearly visible in the log of the component.

Oracle support web article confirms this behviour.

Other Siebel Blogs

siebel-admin-l @ IT - toolbox

siebel-dev-l @ IT - toolbox