Acknowledgment Conflation and Publish Acknowledgements
Last updated
Last updated
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 message2
, 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 replication Destination
. 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, theack_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. Thepersisted
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 .