繁体   English   中英

我可以确保SQL Service Broker中对话对话的顺序吗?

[英]Can I ensure the order of dialog conversations in sql service broker?

因此,我有一个“ A”服务器和一个“ B”服务器。 我们正在使用SQL Service Broker执行复制。 我们拥有的应用程序需要将数据写入“ A”服务器或“ B”服务器。 (一个可能已关闭,另一个应接管)

数据仅在存储过程中被写入数据库,存储过程被包装在事务中以使表中的数据保持一致。

这些事务之一将包括要发送到对等服务器的所有消息。 因此,在我的应用程序代码中,当我尝试提交事务时,它应该将所有数据写入表,并将消息发送到对等服务器。

但是,如果对等服务器已关闭,则消息将在sys.transmission_queue中等待。

对话对话中的消息顺序是可以保证的,但是我可以确保对话对话将按照创建对话的顺序进行处理吗?

例如,如果“ B”服务器关闭,我可能会遇到问题,用户将数据写入“ A”服务器。 再次备份“ B”服务器后,如果这些对话会话未按顺序处理,则它们可能无法正常工作。 (他们可以尝试使用错误的外键或类似的东西插入数据)。

我正在以下假设下工作:

  1. 我应该为每个事务进行一次对话。

  2. 解决方案的形式必须是通过sql服务代理进行复制。 (这是在数据库的其他部分完成的,因此使用替代策略的任何理由都必须具有吸引力)。

您应该使用“代理优先级”。 http://msdn.microsoft.com/en-us/library/bb934170.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM