2011-08-29 62 views
4

我們在weblogic服務器v10.3.2.0中遇到以下異常。我們正在使用JRockit JRE 6.0。當原因未知時如何調試問題

我們參與的每個服務器的請求6-7 XA數據源。當最後一個數據源的處理剛剛開始時,我們面臨這個例外。

請別人提醒。

java.sql.SQLException: Unexpected exception while enlisting XAConnection 
java.sql.SQLException: Transaction rolled back: setRollbackOnly called on transaction 
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1616) 
at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1503) 
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:446) 
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:403) 
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364) 
at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.init(JtaTransaction.java:68) 
at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.getConnection(JtaTransaction.java:131) 
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493) 
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106) 
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82) 
+1

與卡內基音樂廳相同的方式 - 練習,練習,練習。 –

+0

嗨,Krish。你還在嗎 ?你還有興趣嗎 ? – KLE

+0

我喜歡你的評論Daniel ..我過去3天一直在調試這個問題:) – Krish

回答

1

正如您所寫的,原因在本示例中未知。 我們可以看到事務已被標記爲「必須回滾」,可能是由於之前的數據源發生了錯誤。

也許你可以檢查以前的日誌,對以前的數據源,查找原因?

+1

這看起來像一個有趣的線索。讓我檢查 – Krish

+0

相同的請求在本地開發人員環境中成功完成,但在開發服務器環境中失敗:( – Krish

+0

@Krish對不起,您將需要調查什麼是不同的。聽起來像是一項艱苦的工作。:-(別忘了從這種經驗中吸取教訓,例如如何以不同的方式編寫代碼以減少這些問題...... – KLE

1

如果我猜我會說的最後數據源未正確配置爲XA數據源,沒有安裝的XA驅動程序,或者不支持XA。

你在做任何有趣的異常處理在這裏,將截斷堆棧(捕獲重新投擲,但只保留頂部組的棧幀)或使用自定義的異常處理庫?如果你是我會放棄它。看起來應該有一個caused by:與額外的低級堆棧相關的數據源的驅動程序,可以顯示額外的信息。

如果情況並非如此,這是你得到的唯一信息。這可能是時間殺青你的服務器的日誌高達debugtrace並獲得下來,髒與WebLogic如何把事情做..

另外,如果你的支持我會驗證與供應商的驅動程序版本/配置。如果你不是,你需要跟蹤文檔併爲自己進行驗證。