我們正在探索兩種不同的SQL Server實例之間進行通信的不同方法。所需的工作流程之一是向「遠程」方發送某種消息,請求刪除記錄。當系統完成刪除操作後,它保持其事務處於打開狀態,並將響應發送回發起者,發起者然後刪除其相應的記錄,提交其事務,然後將消息發送回「遠程」端,最後告訴它,也要在其一邊進行刪除。SQL Server服務代理 - 處理SQL Server實例之間的兩階段提交的建議
這是一個窮人近似的兩階段提交。關於SQL Server Service Broker是否可以或不能合理處理這種場景,有關部門正在進行一場宗教辯論。任何人都可以闡明它是否可以?任何類似工作流程的經驗?考慮到SQL Server實例位於單獨的非域計算機上,是否有更好的機制可以實現這一目標?
編輯:爲了澄清,我們不能使用分佈式事務,因爲網絡安全性既嚴格又有些隨意。我們不允許這樣做的配置。
我強烈地同意這一點。唯一值得擔心的是消息交換不是直接的,而是像它發生時發生的任何基於SOA的系統一樣。如果這不是一個選項,那麼Service Broker將無法爲您工作。 – 2011-05-22 12:07:37
我打算接受這個答案,因爲我認爲你是正確的,Service Broker的保證交付不需要2PC機制。我沒有像你說的那樣想到它。謝謝! – mwigdahl 2011-05-23 15:11:25