SQL Remote User's Guide
SQL Remote Administration
The message tracking system
When messages are received at a subscriber database, the Message Agent applies them in the correct order (determined from the log offsets) and sends confirmation to the publisher. If a message is missing, the Message Agent increments the local value of rereceive_count, and requests that it be resent. Other messages present or en route are not applied.
The request from a subscriber to resend a message increments the resend_count value at the publisher database, and also sets the publisher's log_sent value to the value of confirm_sent. This resetting of the log_sent value causes operations to be resent.
Users cannot reset log_sentThe log_sent value cannot be reset by a user, as it is in a system table. |
Each message is identified by three values:
Its resend_count.
The transaction log offset of the last COMMIT in the previous message.
A serial number within transactions, for transactions that span messages.
Messages with a resend_count value smaller than rereceive_count are not applied; they are deleted. This ensures that operations are not applied more than once.