Acknowledgment Conflation and Publish Acknowledgements
For some commands, AMPS will conflate acknowledgments and return acknowledgments for multiple commands at one time. When AMPS conflates acknowledgments, AMPS provides an identifier other than the command identifier that describes which commands the acknowledgment applies to.
For example, when a transaction log is configured (with at least one topic recorded), AMPS conflates persisted
acknowledgments in response to publish
commands and sow_delete
commands. These conflated acknowledgments contain the last client sequence number that the acknowledgment applies to rather than the command identifiers or sequence numbers for all messages being acknowledged. For example, if an application publishes messages with sequence numbers 1
, 2
, 3
, 4
, and 5
, and message 3
fails due to entitlement restrictions, AMPS will return an ack
indicating success for message 2
, an ack
indicating failure for message 3
, and an ack
indicating success for message 5
.
By default, AMPS produces conflated acknowledgments for a given connection approximately once a second.
Starting with version 5.2.3.0, AMPS allows configuration of the conflation interval. To set a different conflation interval:
For an individual client, provide an
ack_conflation
option in the options string for the logon for that client. This sets the interval at which AMPS will provide acknowledgments to that client.For replication acknowledgments, specify the
AckConflationInterval
in the replicationDestination
. This sets the interval at which the downstream AMPS server will provide acknowledgments to this AMPS server.
Notice that when a publisher is publishing to a replicated topic, the ack_conflation
interval sets the interval at which AMPS acknowledges messages that have already been acknowledged by synchronous replication destinations, while the AckConflationInterval
specifies how often those downstream destinations produce an acknowledgment. In a situation where it is important to reduce the default latency of an acknowledgment, both the server option and the client side option typically need to be set.
The AMPS client libraries use persisted
acknowledgements to manage reliable publishing when a publish store is configured. The persisted
acknowledgements allow the library to remove messages that have been safely persisted by AMPS (or that have produced an error). See the Developer Guides for details.
To see more information about the different commands and their supported acknowledgment types, please refer to the AMPS Command Reference, provided with 4.0 and greater versions of the AMPS clients and available from the 60East documentation site at http://docs.crankuptheamps.com/.
Last updated