[英]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”服務器后,如果這些對話會話未按順序處理,則它們可能無法正常工作。 (他們可以嘗試使用錯誤的外鍵或類似的東西插入數據)。
我正在以下假設下工作:
我應該為每個事務進行一次對話。
解決方案的形式必須是通過sql服務代理進行復制。 (這是在數據庫的其他部分完成的,因此使用替代策略的任何理由都必須具有吸引力)。
您應該使用“代理優先級”。 http://msdn.microsoft.com/en-us/library/bb934170.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.