我在WebSphere ND 7.0.0.21上部署了一個應用程序。在那裏我配置了一個Oracle XA數據源。最近應用程序崩潰了,當我重新啓動它時,我開始每秒在SystemOut.log中獲得以下例外。授予Oracle權限不會修復WebSphere XAER_RMERR異常?
[11/6/12 13:55:38:650 GMT] 0000000c InternalGener I DSRA8205I: JDBC driver name : Oracle JDBC driver
[11/6/12 13:55:38:651 GMT] 0000000c InternalGener I DSRA8206I: JDBC driver version : 11.2.0.2.0
[11/6/12 13:55:38:661 GMT] 0000000c InternalOracl I DSRA8212I: DataStoreHelper name is: com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper.
[11/6/12 13:55:38:662 GMT] 0000000c WSRdbDataSour I DSRA8208I: JDBC driver type : ""
[11/6/12 13:55:38:685 GMT] 0000000c WSRdbXaResour E DSRA0304E: XAException occurred. XAException contents and details are: The cause is : null.
[11/6/12 13:55:38:837 GMT] 0000000c WSRdbXaResour E DSRA0302E: XAException occurred. Error code is: XAER_RMERR (-3). Exception is: <null>
[11/6/12 13:55:38:837 GMT] 0000000c XARminst E WTRN0037W: The transaction service encountered an error on an xa_recover operation. The resource was [email protected] The error code was XAER_RMERR. The exception stack trace follows: javax.transaction.xa.XAException
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:709)
at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:1088)
at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:141)
at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:626)
at com.ibm.tx.jta.PartnerLogTable.recover(PartnerLogTable.java:389)
at com.ibm.tx.jta.RecoveryManager.resync(RecoveryManager.java:1530)
at com.ibm.tx.jta.RecoveryManager.performResync(RecoveryManager.java:2265)
at com.ibm.ws.tx.jta.RecoveryManager.performResync(RecoveryManager.java:114)
at com.ibm.tx.jta.RecoveryManager.run(RecoveryManager.java:2218)
at java.lang.Thread.run(Thread.java:736)
這似乎是在相應的權限還沒有被授予數據庫的標準問題,以允許交易的數據庫用戶訪問需要恢復 - http://www-01.ibm.com/support/docview.wss?uid=swg21196663
不過,我當時運行的SQL上該頁面並重新啓動應用程序服務器,但問題仍然存在。當我刪除事務日誌(在IBM頁面上描述爲解決方法)時,問題才消失。
爲什麼授予權限不能解決問題?其他的事情會導致XAER_RMERR問題嗎?
刪除事務日誌非常危險,因爲您丟失有關活動事務的信息。 – steve
是的同意 - 我只是刪除了它們,因爲WebSphere試圖恢復它們不起作用,這是最後的手段。這不是一個生產系統,我不想那樣做(我希望WebSpehere的恢復在這種情況下實際工作:-)) –