在预订者数据库收到消息后,消息代理将按照正确顺序(根据日志偏移确定)应用这些消息,并向发布者发送确认信息。如果丢失一条消息,消息代理将递增 rereceive_count 的本地值,并请求重发该消息。已经到达或正在传送中的其它消息将不会被应用。
如果预订者发出重发消息的请求,发布者数据库的 resend_count 值将递增,同时将把发布者的 log_sent 值设置为 confirm_sent 的值。这样,由于 log_sent 的值被重置,因此将重发操作。
用户不能重置 log_sent用户不能重置 log_sent 的值,因为它保存在系统表中。 |
每条消息均由三个值标识:
它的 resend_count 值。
上一条消息中最后一个 COMMIT 指令的事务日志偏移。
事务内的序列号(对于跨消息的事务)。
如果消息的 resend_count 值比 rereceive_count 值小,则不会应用这些消息;它们将被删除。这样便可以确保不会多次应用操作。
SQL Anywhere Studio 9.0.2
版权所有 © 1989–2005 Sybase, Inc. 部分版权所有 © 2001–2005 iAnywhere Solutions, Inc. 保留所有权利。