Integration Server 10.5 | JMS Client Development Guide | Working with JMS Triggers | Building a Transacted JMS Trigger | Transient Error Handling for Transacted JMS Triggers | Overview of Recover Only for Transaction Rollback
 
Overview of Recover Only for Transaction Rollback
The following table provides an overview of how Integration Server handles transaction rollback when the Recover Only option is selected for a transacted JMS trigger.
Step
Description
1
The trigger service web service operation fails because of an ISRuntimeException.
2
Integration Server rolls back the entire transaction.
When the transaction is rolled back, Integration Server recovers the message back to the JMS provider automatically. The JMS provider marks the message as redelivered and increments the delivery count (JMSXDeliveryCount field in the JMS message).
At this point, a JMS provider typically makes the message available for immediate redelivery.
3
Integration Server receives the same message from the JMS provider and processes the message.
Because Integration Server receives the message almost immediately after transaction roll back, it is likely that the temporary condition that caused the ISRuntimeException has not resolved and the trigger service will end with a transient error again. Consequently, setting On transaction rollback to Recover only could result in wasted processing.
Note:Integration Server enforces a maximum delivery count, which determines the maximum number of time the JMS provider can deliver the message to the JMS trigger. If the maximum delivery count has been met, the JMS provider will not deliver the message to the JMS trigger. Instead, the JMS provider will acknowledge and remove the message. The maximum delivery count is controlled by the watt.server.jms.trigger.maxDeliveryCount property.