Chapter 10. SQL Remote Administration

Handling of lost or corrupt messages

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_sent

The log_sent value cannot be reset by a user, as it is in a system table.

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

239

Page 257
Image 257
Sybase DC38133-01-0902-01 manual Handling of lost or corrupt messages, Its resendcount