台灣最大程式設計社群網站
線上人數
1049
 
會員總數:242629
討論主題:187612
歡迎您免費加入會員
討論區列表 >> ASP.NET >> C# oracle TransactionScope
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
C# oracle TransactionScope
價值 : 110 QP  點閱數:187 回應數:2

樓主

龍貓王
初學者
20 40
1235 67
發送站內信

C# 寫WebService 因處理資料異動用 TransactionScope 包著
但似乎出現怪異錯誤 ORA-02048

有查到黑暗執行緒大大有一篇blog 提到
似乎是 OPD.net 和oracle 版本配合TransactionScope 有問題
Managed ODP.NET 4.121.2 + Oracle 10.2 伺服器B
ORA-02048 attempt to begin distributed transaction without logging on

想請問大大們有人知道如何解決嗎?
雖然我的是4.122 版, 但客戶是10.2 好像還是會ORA-02048
Oracle.ManagedDataAccess, Version=4.122.1.0

1. 客戶升級至 11g 看看, 開發環境11g 測試是OK XD
但客戶不見得會升級

2. 找方法取代 C# TransactionScope
不知有沒有大大能提供思路, 或是oracle 有語法能先宣告

3. 其他替代 Managed ODP.NET連結oracle 方式
試過.net 4.0 內建odbc 但他有64, 32位元問題, 客戶環境一直弄不好
才改用 ODP.NET , 看是否有大大能提供其它方式測試看看能否搭配
C# TransactionScope

搜尋相關Tags的文章: [ TransactionScope ] , [ OPD.net ] , [ oracle 10.2 ] ,
本篇文章發表於2018-03-10 20:17
== 簽名檔 ==
新手, 帥氣XD
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

topcat
捐贈 VP 給 topcat 檢舉此回應
不知道可不可行

把資料維護的部分,全部寫在『Stored procedure』中
當然,Transaction也是寫在其中
那麼,您的程式就只剩下呼救SP

^.^a
本篇文章回覆於2018-03-12 11:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

龍貓王
檢舉此回應
偶是用OracleTransaction 替代 TransctionScope
也是黑暗執行緒大大的文章
測試了一下, 似乎不會出現ORA-02048
目前正在改寫中XDD

也謝謝小貓版主大大提供的思路
雖然SP幾乎沒用過, 不過也是好想法
跳開了 開發程式和DB 之間的限制
本篇文章回覆於2018-03-12 12:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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