2012-08-15 64 views
2

我有一個接收位置正在使用WCF-SQL適配器對存儲過程進行輪詢。來自SQL的BizTalk輪詢 - 提交/回滾事務

接收位置正在使用自定義管道。

該存儲過程正在對某些行執行「UPDATE」操作。

我需要BizTalk在事務中執行ROLLBACK以防在稍後階段管道失敗。

我應該怎麼做?

回答

2

默認情況下,WCF-SQL適配器將調用存儲過程下distributed DTC transaction

此設置(UseAmbientTransaction)是在接收位置屬性,綁定選項卡,交易。

(未經測試!)這應該表示如果proc或管道失敗,連接將自動回滾。

當在編排中的原子範圍的範圍內使用時,這應該類似地在適配器上強制執行2階段提交/ ACID。

+0

感謝您的回答。我試圖設置「UseAmbientTransaction」= True,但是當管道失敗時,BizTalk引擎沒有回滾事務(我的意思是這些行得到更新)。 – ohadinho 2012-08-16 05:41:24

+1

@ user1003363看來我只在WCF-SQL上使用標準的XmlReceive。蒂亞戈還有更多關於這方面的內容:http://connectedthoughts.wordpress.com/2010/03/24/hooking-into-biztalks-underlying-transaction-in-your-custom-receive-pipeline-component/。我猜測是因爲每次輪詢都拉出一個BTS提交的批次,因爲a)PROC成功,b)批次成功提交到消息箱中。 – StuartLC 2012-08-16 05:51:00

+0

所以沒有辦法使用自定義管道進行回滾? – ohadinho 2012-08-16 06:05:56