所以,我有一个'A'服务器和一个'B'服务器。我们正在使用SQL Service Broker来执行复制。我们的应用程序需要将数据写入“A”服务器或“B”服务器。 (一个可能会失败,另一个可能会接管)
数据仅在存储过程中写入数据库,存储过程包含在事务中以保持表中的数据一致。
其中一个事务将包括要发送到对等服务器的所有消息。因此,在我的应用程序代码中,当我尝试提交事务时,它应该将所有数据写入表中,并将消息发送到对等服务器。
但是,如果对等服务器已关闭,则消息将在sys.transmission_queue中等待。
保证对话会话中的消息顺序,但是我可以确保按照我创建的对话顺序处理对话会话吗?
例如,如果'B'服务器关闭,我可能会遇到问题,用户将数据写入'A'服务器。一旦'B'服务器再次备份,如果这些对话对话无序处理,它们可能无法正常工作。 (他们可能会尝试使用错误的外键或类似内容插入数据)。
我的工作是基于以下假设:
我应该有一个对话框 每次交易的对话。
解决方案的形式必须是 通过sql服务进行复制 经纪人。 (这是在其他方面完成的 部分数据库,所以任何原因 必须使用替代策略 引人注目的)。