Broker 10.5 | webMethods Broker Documentation | webMethods Broker Messaging Programmer's Guide | JMS Policy Based Client-Side Clustering | Cluster Load Balancing Policies | Message Pre-Acknowledgement | Message Pre-Acknowledgement Time Interval Setting
 
Message Pre-Acknowledgement Time Interval Setting
For each Broker in the cluster, edit the Broker Server configuration file, awbroker.cfg file, to set the values of message pre-acknowledgement parameters.
It is recommended to set different values of tentative-pre-acknowledgement-timeout parameter for different Brokers in the cluster to prevent simultaneous duplicate message delivery from the secondary Brokers. Appropriate values for pre-acknowledgement parameters optimizes the use of cluster and ensures that the subscriber receives the message only once. For more information, see the details in the following table:
Parameter
Specifies...
Recommended Setting
tentative-pre-acknowledgement-timeout
The minimum time the Brokers in the cluster will hold the published message before sending it to the subscriber.
*If a Broker does not receive confirmed message pre-acknowledgement before the specified tentative-pre-acknowledgement-timeout time interval, the Broker forwards the published message to the subscriber.
*If a Broker receives the confirmed pre-acknowledgement before the specified tentative-pre-acknowledgement-timeout time interval, the Broker deletes the published message from the client queue.
Default value is 20 seconds.
For each Broker in the cluster, set different values of tentative-pre-acknowledgement-timeout parameter.
*Specify a small value to enable quick message publishing using secondary Brokers in case the primary Broker goes offline before sending the message to the subscriber.
*Specify a large value to minimize duplicate message delivery. If the primary Broker does not send the message to the subscriber within the tentative-pre-acknowledgement-timeout time, a duplicate message is sent to the cluster. The message delivery by the primary Broker may be delayed because of the following reasons:
*Primary Broker has a temporary failure.
*Slow response either due to high latency networks or the number of documents in the primary Broker is large (that is, the queue builds up).
confirmed-pre-acknowledgement-timeout
The maximum time interval a cluster Broker holds a confirmed pre-acknowledgement before discarding it. This parameter setting is required to enable cleanup of accumulated confirmed pre-acknowledgements in Brokers that never receive the published messages.
Default value is 10 minutes.
pre-acknowledgement-timer-interval
The time interval in seconds for checking the pre-acknowledgement timeout status in a cluster Broker. The checks are done in the time interval specified by pre-acknowledgement-timer-interval parameter until the value specified by tentative-pre-acknowledgement-timeout parameter is reached.
Default value is 10 seconds.
Note:
The timer works only for active sessions. So, if a client is disconnected from the durable queue, the timer does not work. The timeout of tentative pre-acknowledgement works in two phases to account for slow subscribers.
Specify a value less than half the value of tentative-pre-acknowledgement-timeout parameter.
*If you specify a very small value, Broker checks the timeout status frequently.
*If you specify a very large value, Broker may not detect the timeout effectively.