Transports and Interfaces: Siebel Enterprise Application Integration > Java Message Service Transport >

About Multi-Step Operations Within a JMS Session


All JMS operations are performed in the context of a transactional JMS QueueSession. If a send or receive operation throws an exception, the session is immediately rolled back. If the operation is successful, then the session is committed, unless the operation is part of a larger multi-step operation. In the case of multi-step operations, the transaction is handled as follows:

  • SendReceive. If the send operation succeeds, then the JMS session is committed and a receive operation is performed. This is necessary because the receive operation may depend on a response to the first message.
  • ReceiveDispatch. If the receive operation fails, then the JMS session is rolled back, and the dispatch operation is not attempted. If the receive operation succeeds, then the dispatch operation is attempted. If the dispatch succeeds, then the JMS session is committed; otherwise, both the Siebel transaction and the JMS session are rolled back.
  • SubscribeDispatch. Same as ReceiveDispatch.
  • ReceiveDispatchSend. If the receive operation fails, then the JMS session is rolled back, and further operations are not attempted. If the receive operation succeeds, then the dispatch operation is attempted. If the dispatch operation fails, then the JMS session and the Siebel transaction are rolled back; otherwise, the send operation is attempted. If the send operation fails, then the JMS session and the Siebel transaction are rolled back; otherwise, both are committed.

Each Dispatch operation is performed within a Siebel transaction.

NOTE:  ReceiveDispatch and ReceiveDispatchSend should not be attempted from within an existing Siebel transaction, as nested transactions are not supported.

Also, as with all Siebel EAI receivers, if an operation fails during the execution of the JMS Receiver, the JMS Receiver component terminates. (A timeout is not a failure.)

Transports and Interfaces: Siebel Enterprise Application Integration