2011-06-07 40 views
0

我有一個擁有代理的ESB(Aqualogic)。ESB + WCF,通過多種服務進行交易

這個代理會調用3級不同的服務,我必須把這些3個服務事務範圍...

ESB不必事務的支持......

有人知道任何解決方案到那個?

回答

1

我對Aqualogic並不熟悉,但總的來說,我可以說你想做的事非常非常困難。

如果Aqualogic使用MSMQ進行傳輸,那麼通過使用事務隊列可能會對事務提供某種形式的支持。但這只是一個開始。

如果要將WCF服務與事務上下文相集成,則需要設置對WS-Atomic協議的支持(請參閱http://msdn.microsoft.com/en-us/library/ms729784.aspxhttp://social.msdn.microsoft.com/Forums/en/wcf/thread/cae32545-6536-4631-b89f-54f55da62199)。這是一個嚴重的痛苦。

不只是配置它,而且要使用它。在服務器之間使用WS-Atomic意味着您需要在所有機器上激活MSDTC,並且這些MSDTC之間的協調非常緩慢並且容易導致長時間的超時。

最好不要期望在單次交易中運行所有事情,而是要使用補償部分成功/部分操作失敗的工作流程。例如,另請參見http://msdn.microsoft.com/en-us/library/dd483319.aspx

+0

不錯......但我真的需要交易,而不是賠償。在我的情況下,績效並不那麼重要......薪酬的成本確實很高。您有任何教程可以使用WS-AT配置服務嗎?我已經在我的機器上安裝了WS-AT,但是我真的迷路了... – renanlf 2011-06-08 13:41:56

+1

我沒有教程,不...我想許多試圖走這條路線的人都放棄了。在兩年前我做的一個項目中,我們不得不放棄WS-AT,因爲它太複雜,太慢而且容易出錯。所以,如果你真的想繼續做這件事情......引用朋友,「準備好做一些嚴重的哭泣。」 – 2011-06-08 13:55:33

+0

Hehehe ...謝謝! – renanlf 2011-06-08 17:57:42