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. |