SYSREMOTEUSER 系统表中有两列用来管理重新发送消息:
resend_count 列 跟踪预订者数据库丢失消息的次数的计数器。
rereceive_count 列 跟踪消息代理 (dbremote) 已确定来自发布者用户的消息已丢失的次数的计数器。
当在预订者数据库中按正确顺序接收消息时:
预订者消息代理 (dbremote) 按正确顺序应用消息,并更新其 SYSREMOTEUSER 系统表。
预订者消息代理 (dbremote) 向发布者发送确认消息。
当发布者接收到确认消息时,其消息代理 (dbremote) 会更新其 SYSREMOTEUSER 系统表。
当未按正确顺序接收消息时:
预订者消息代理 (dbremote) 发送重发请求,并增大其 SYSREMOTEUSER 系统表中的 rereceive_count 值。
发布者接收到重发请求时,会为预订者增大 SYSREMOTEUSER 系统表中的 resend_count 值。
在发布者的 SYSREMOTEUSER 系统表中,log_sent 值将设置为 confirm_sent 列中的值。对 log_sent 值进行重置会使操作被重新发送。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |