2014-03-05 44 views
0

任何人都知道有關此錯誤的信息? ORA-02048:嘗試開始分佈式事務無需登錄 ORA-02063:從..dblinkORA-02048 - 試圖在沒有登錄的情況下開始分佈式事務

,因爲Java的時候我調用包含dblinks來訪問其它數據庫中插入一個PL/SQL程序包它發生前行數據。 dblink可以和其他子句很好地協作,但不在這個包中。 如果我自TOAD以來調用這個PL/SQL包,它的效果很好。

我想重現這個錯誤,並且我發現這個錯誤來自於一個模式: 當我點擊使PL運行的按鈕時,日誌顯示錯誤「ora-02292完整性約束子記錄找到「,並在下次單擊按鈕時,出現錯誤」ORA-02048「,這就像第一個錯誤與遠程數據庫失去連接。

在此先感謝

回答

0

沒有看到一個最小的測試用例演示該問題,這是不可能的說。

However, looking up the error message: 
-bash-4.1$ oerr ora 2048 
02048, 00000, "attempt to begin distributed transaction without logging on" 
// *Cause: client program must issue a distributed transaction login. 
// *Action: contact support. 

因此,我建議聯繫Oracle支持並打開SR。但是,他們可能要求的第一件事就是一個能夠證明問題的工作測試案例。

+0

問題是我無法重現它。在大量處理記錄的過程中,它被投入到生產環境中。例如100個記錄被傳遞給這個PL,並且它插入如下記錄: 1.-插入mytable(..)值(..); 2.-插入到mytable @ dblink(..)values(..); 如果我在Preproduccion環境中使用相同的參數,我無法獲得此錯誤。 請任何想法?像在數據庫中配置dblinks的方式一樣的問題?超過連接到同一個dblink的最大連接數? – user3380207

+0

Oracle的(特定)版本?你正在運行共享服務器嗎?我真的覺得你別無選擇,只能打開SR。 –

+0

Oracle版本是:Oracle9i企業版版本9.2.0.7.0 - 64bit製作,並且服務器是專用的。 – user3380207

0

問題是thatI有不同的程序,這樣的:

過程1 - >(呼叫) - >程序2 - >(呼叫) - > procedure3

在procedure3我有一個clausure與DBLINK那插入一個遠程表。

過程1捕獲過程2和過程3中可能出現的異常。

問題是當一個異常拋出procedure3。在這種情況下,放置在procedure1的異常捕獲中的回滾應該完成事務,但它不像我期望的那樣工作。事務是這種情況下仍然是公開的,並在程序執行中的第二次,甲骨文顯示我的ORA-02048錯誤。

該解決方案將異常捕獲移入procedure3。

相關問題