2
我有一個接收位置正在使用WCF-SQL適配器對存儲過程進行輪詢。來自SQL的BizTalk輪詢 - 提交/回滾事務
接收位置正在使用自定義管道。
該存儲過程正在對某些行執行「UPDATE」操作。
我需要BizTalk在事務中執行ROLLBACK以防在稍後階段管道失敗。
我應該怎麼做?
我有一個接收位置正在使用WCF-SQL適配器對存儲過程進行輪詢。來自SQL的BizTalk輪詢 - 提交/回滾事務
接收位置正在使用自定義管道。
該存儲過程正在對某些行執行「UPDATE」操作。
我需要BizTalk在事務中執行ROLLBACK以防在稍後階段管道失敗。
我應該怎麼做?
默認情況下,WCF-SQL適配器將調用存儲過程下distributed DTC transaction
此設置(UseAmbientTransaction
)是在接收位置屬性,綁定選項卡,交易。
(未經測試!)這應該表示如果proc或管道失敗,連接將自動回滾。
當在編排中的原子範圍的範圍內使用時,這應該類似地在適配器上強制執行2階段提交/ ACID。
感謝您的回答。我試圖設置「UseAmbientTransaction」= True,但是當管道失敗時,BizTalk引擎沒有回滾事務(我的意思是這些行得到更新)。 – ohadinho 2012-08-16 05:41:24
@ 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
所以沒有辦法使用自定義管道進行回滾? – ohadinho 2012-08-16 06:05:56