台灣最大程式設計社群網站
線上人數
367
 
會員總數:243462
討論主題:188180
歡迎您免費加入會員
討論區列表 >> C# >> Rollback web service + TSQL(Stored Proc)
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
Rollback web service + TSQL(Stored Proc)
價值 : 50 QP  點閱數:202 回應數:5

樓主

芋頭
初學者
247 451
2986 443
發送站內信

請問各位大大
我想要呼叫遠端廠商開發的 web service跟 公司自己的SQL 預存程序,流程如下,
那麼當(2)或(3)發生錯誤時(1)可以被rollback嗎?
我嘗試了一下 好像還是WS會被執行
謝謝指導
try
{
///BeginTransaction here

///(1)Call 廠商 web services here
///(2)Call 自己Server Stored Proc1 here
///(3)Call 自己Server Stored Proc2 here

///Commit Transaction here
}
catch (Exception exc)
{
///Rollback Exception here
}
finally
{
///Close Transaction here
}


搜尋相關Tags的文章: [ Rollback ] , [ web service ] , [ Stored Proc ] ,
本篇文章發表於2018-07-10 15:36
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
請問您1是做什麼動作,
如果是改對方的資料庫當然是無法RollBack的,
除非對方有提供相關的API...
如果是這種情況,
不能夠把 2 跟 3 擺在 1 前面嗎?
至少寫 1 的資料庫要放在最後面.
本篇文章回覆於2018-07-11 12:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
這三個Call都必須有Transaction,當其中之一Catch則三個Transaction皆Rollback
本篇文章回覆於2018-07-12 12:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

芋頭
檢舉此回應
謝謝回覆
由於 必須要確定1成功後才能 執行2跟2,所以順序無法調整
1,2,3都是不同資料庫(1根本是在廠商那邊(所以是呼叫WS))
謝謝~~~
本篇文章回覆於2018-07-12 13:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

小魚
檢舉此回應
我覺得換個方式思考吧,
先執行2跟3,
然後執行1,
如果1成功了,2跟3就Commit,
如果1失敗了,2跟3就Rollback,
這個結果不是你要的嗎?
本篇文章回覆於2018-07-14 01:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

芋頭
檢舉此回應
哈哈哈 我真的沒想到
謝謝大大提醒
本篇文章回覆於2018-07-19 13:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.