2010-06-01 40 views
0

我正在編寫一個使用SSB隊列與其他系統通信的C#應用​​程序。 從SSB隊列收到消息時,我並不總能確定我能夠處理它。因此,我想窺視隊列(或者可能只是被通知有消息,而不是必須的內容),但是同時使用SSB語法,包括WAITFOR。SQL Service Broker隊列中查看

這樣做的原因是我想100%確定沒有任何信息會丟失,即使接收機遇到某種不可恢復的故障。另一種解決方案可能是將其封裝在一個事務中,但這需要更多的代碼更改,而不僅僅是偷看呼叫。如果任何人有任何其他解決方案來確保沒有數據丟失,那麼我就是耳熟能詳。

+0

如果您確定無法處理隊列中的下一條消息,您會怎麼做? – 2010-06-01 16:57:27

+0

寫一個日誌消息,並可能救助。但我正在走交易路線,還沒有找到任何方法來簡單地偷看。 – Jonny 2010-06-02 15:46:51

回答

0

您應該先收到該消息,然後決定是否可以處理它。如果你不能,「寫一條日誌消息並保釋出來」 - 但是提交接收事務。如果你回滾事務(或者只是按照你的意圖去查看隊列),那麼最終會出現一個消息,你不能在隊列中處理,並且無限期地持續偷看(或接收/回滾)它。

相關問題