Software AG Products 10.7 | Integrating On-Premises and Cloud Applications | Service Development | Working with JMS Triggers | Building a Transacted JMS Trigger | Transient Error Handling for Transacted JMS Triggers | Overview of Suspend and Recover for Transaction Rollback
 
Overview of Suspend and Recover for Transaction Rollback
The following table provides an overview of how Integration Server handles transaction rollback when the Suspend and recover option is selected for a transacted JMS trigger.
Step
Description
1
The trigger service or 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).
3
Integration Server suspends the JMS trigger temporarily.
The JMS trigger is suspended on this Integration Server only. If the Integration Server is part of a cluster, other servers in the cluster can retrieve and process messages for the trigger.
Important:
If you disable or suspend a SOAP-JMS trigger that acts as a listener for one or more provider web service descriptors, Integration Server will not retrieve any messages for those web service descriptors until the SOAP-JMS trigger is enabled.
Note:
The change to the trigger state is temporary. Message processing will resume for the trigger if Integration Server restarts, the trigger is enabled or disabled, or the package containing the trigger reloads. You can also enable triggers manually using Integration Server Administrator or by invoking the pub.trigger:enableJMSTriggers service.
4
Optionally, Integration Server schedules and executes a resource monitoring service. A resource monitoring service is a service that you create to determine whether the resources associated with a trigger service are available. A resource monitoring service returns a single output parameter named isAvailable.
5
If the resource monitoring service indicates that the resources are available (that is, the value of isAvailable is true), Integration Server enables the trigger. Message processing and message retrieval resume for the JMS trigger.
If the resource monitoring service indicates that the resources are not available (that is, the value of isAvailable is false), Integration Server waits a short time interval (by default, 60 seconds) and then re-executes the resource monitoring service. Integration Server continues executing the resource monitoring service periodically until the service indicates the resources are available.
Tip:
You can change the frequency at which the resource monitoring service executes by modifying the value of the watt.server.jms.trigger.monitoringInterval property.
6
After Integration Server resumes the JMS trigger, Integration Server receives the message from the JMS provider and processes the message.
Note:
If the maximum delivery count has been met, the JMS provider will not deliver the message to the JMS trigger. The maximum delivery count determines the maximum number of time the JMS provider can deliver the message to the JMS trigger. It is controlled by the watt.server.jms.trigger.maxDeliveryCount property.