Configuring Exactly-Once Processing for a JMS Trigger
Configure exactly-once processing for a JMS trigger when you want the trigger to process persistent messages once and only once. If it is acceptable for a trigger service to process duplicates of a message, you should not configure exactly-once processing for the trigger.
Keep the following points in mind when configuring exactly-once processing:
Integration Server can perform exactly-once processing for persistent messages only. The sending client must set the
JMSDeliveryMode to persistent.
The JMS trigger must specify
CLIENT_ACKNOWLEDGE for the acknowledgement mode.
You do not need to configure all three methods of duplicate detection. However, if you want to ensure exactly-once processing, you must use a document history database or implement a custom solution using the document resolver service.
A document history database offers a simpler approach than building a custom solution and will typically catch all duplicate messages. There may be exceptions depending on your implementation. For more information about these exceptions, see
Building a Transacted JMS Trigger. To minimize these exceptions, it is recommended that you use a history database and a document resolver service.
Stand-alone
Integration Servers cannot share a document history database. Only a cluster of
Integration Servers or a non-clustered group of
Integration Servers can (and must) share a document history database.
Make sure the duplicate detection window set by the
History time to live property is long enough to catch duplicate messages but does not cause the document history database to consume too many server resources. If sending JMS clients reliably send messages once, you might use a smaller duplicate detection window. If the JMS clients are prone to sending duplicate messages, consider setting a longer duplicate detection window.
If you intend to use a document history database as part of duplicate detection, you must first install the document history database component and associate it with a JDBC connection pool. For instructions, see
Installing Software AG Products.
Note: For detailed information about exactly-once processing for messages received by JMS triggers, see Using webMethods Integration Server to Build a Client for JMS.
To configure exactly-once processing for a JMS trigger
1. In the Package Navigator view of Designer, open the JMS trigger for which you want to configure exactly-once processing.
2. In the Properties view, under Exactly Once, set the Detect duplicates property to True.
3. To use a document history database as part of duplicate detection, do the following:
a. Set the Use history property to True.
b. In the History time to live property, specify how long the document history database maintains an entry for a message processed by this trigger. This value determines the length of the duplicate detection window.
4. To use a service that you create to resolve the status of In Doubt messages, specify that service in the Document resolver service property.
5. Click File > Save.
Related Topics