posts - 1,  comments - 0,  trackbacks - 0

          OracleXAException: XAER_RMERR (Internal XA Error)

          在第一次運行范例時,您可能會得到以下錯誤:

          WSRdbDataSour I DSRA8203I: 
          Database product name : Oracle
          WSRdbDataSour I DSRA8204I: Database product version :
          Personal Oracle9i Release 9.2.0.1.0 - Production
          With the Partitioning, OLAP and Oracle Data Mining options
          JServer Release 9.2.0.1.0 - Production
          WSRdbDataSour I DSRA8205I: JDBC driver name? : Oracle JDBC driver
          WSRdbDataSour I DSRA8206I: JDBC driver version? : 9.2.0.1.0
          WSRdbXaResour E DSRA0304E:?
          XAException occurred. XAException contents and details are:
          The XA Error is??????????? : -3
          The XA Error message is??? : A resource manager error has occurred in the transaction branch.
          The Oracle Error code is?? :
          65535
          The Oracle Error message is:
          Internal XA Error
          The cause is?????????????? : null.
          WSRdbXaResour E DSRA0302E:?XAException occurred.? Error code is:
          XAER_RMERR.?
          Exception is: <null>
          RegisteredRes E WTRN0078E:
          An attempt by the transaction manager to call start
          on a transactional resource has resulted in an error.
          The error code was XAER_RMERR.
          The exception stack trace follows:
          oracle.jdbc.xa.
          OracleXAException
          ???? at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1157)
          ???? at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:295)
          ???? at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.start(WSRdbXaResourceImpl.java:927)
          ???? at com.ibm.ejs.j2c.XATransactionWrapper.start(XATransactionWrapper.java:1267)
          ???? at com.ibm.ws.Transaction.JTA.JTAResourceBase.start(JTAResourceBase.java:164)
          ???? at com.ibm.ws.Transaction.JTA.RegisteredResources.startRes(RegisteredResources.java:389)
          ???? at com.ibm.ws.Transaction.JTA.TransactionImpl.enlistResource(TransactionImpl.java:1903)
          ???? at com.ibm.ws.Transaction.JTA.TranManagerSet.enlist(TranManagerSet.java:494)
          . . .

          該錯誤是因為事務管理程序不能將事務轉換為 XA 事務。Oracle 明確的返回錯誤 XAER_RMERR ,錯誤代碼編號為 65535。 ORA-65535 不是一個有效錯誤代碼,并且 XAER_RMERR 實質上意味著 XA 發(fā)生了某些錯誤。這說明您的 Oracle 數(shù)據(jù)庫沒有被配置為支持 XA 事務。因此,當 WebSphere Application Server 事務管理程序命令 Oracle 事務管理程序參與這個 XA 事務時,Oracle 拒絕該命令并拋出這個異常。

          解決方法是運行 Oracle 安裝中包含的兩個腳本。這很可能需要通過您的 Oracle DBA 來執(zhí)行,您必須以 SYSOPERSYSDBA 身份登錄到 Oracle,以擁有足夠的權限來運行這些腳本。這些腳本是:

          • directory: <ORACLE_HOME>\javavm\install
            • file: initxa.sql
            • file: initjvm.sql

          initxa.sql 腳本配置 XA 數(shù)據(jù)庫。一旦它成功運行,您的數(shù)據(jù)庫就被配置為 XA。該腳本在您第一次運行的時候可能成功。不幸的是,由于一些數(shù)據(jù)庫的內存空間太小,該腳本也可能無法成功運行。為修改該問題,運行 initjvm.sql 腳本。它可能也會運行失敗,但是在失敗時,該腳本會說明哪個參數(shù)需要調整。參數(shù)被保存在該文件中:

          • directory: <ORACLE_HOME>\database
            • file: init<DATABASE_SID>.ora

          這個表說明了有兩個參數(shù)的值特別需要增大。對于特定的數(shù)據(jù)庫配置可能需要調整不同的參數(shù)。

          Oracle Initialization Values

          Parameter Name Minimum Value
          java_pool_size 12000000
          shared_pool_size 24000000

          一旦 initjvm.sql 運行成功,則 initxa.sql 就應該也可以成功運行。Oracle 數(shù)據(jù)庫需要重新啟動,以使修改生效。您可以重新啟動 WebSphere Studio 測試服務器并重新嘗試運行該范例。

          XAException: XAER_RMERR (xa_recover)

          您 也許能夠很正常的運行該范例,起碼在修改了這些問題之后變得正常。您可以開發(fā)通過 Oracle 使用 XA 事務的應用程序并正常運行該程序。但是可能有一天您會發(fā)現(xiàn)無法啟動 WebSphere Application Server。該問題的發(fā)生可能是由于您沒有正常的關閉服務器,導致 WebSphere 和/或 Oracle 崩潰。WebSphere 的啟動錯誤類似于以下所示:

          SecurityCompo I SECJ0243I: Security service started successfully
          SecurityCompo I SECJ0210I: Security enabled false
          WSRdbXaResour E DSRA0304E:?
          XAException occurred.
          XAException contents and details are: The cause is?????????????? : null.
          36185510 WSRdbXaResour E DSRA0302E:? XAException occurred.?
          Error code is:
          XAER_RMERR.? Exception is: <null>
          XARminst????? E WTRN0037W:
          The transaction service encountered an error
          on an xa_recover operation.
          The resource was J2CXAResourceInfo :
          cfName = XA Example Data Source
          configProps = [Deployed Resource Adapter Properties]
          ???? OptionC_authDataAlias ??? ?java.lang.String ?????????? ?scott
          ???? UserName ????????? ?java.lang.String ?????????? ?
          scott
          ???? Password ?????????? ?java.lang.String ?????????? ?********
          ???? TransactionResourceRegistration ?java.lang.String ?????????? ?dynamic
          ???? InactiveConnectionSupport ????????? ?java.lang.Boolean ?????? ?true
          ???? secureMode ?????? ?boolean ????????? ?true
          . . .
          The error code was XAER_RMERR. The exception stack trace follows:
          javax.transaction.xa.XAException
          ???? at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:626)
          ???? at com.ibm.ws.rsadapter.spi.WSRdbXaResourceImpl.recover(WSRdbXaResourceImpl.java:672)
          ???? at com.ibm.ws.Transaction.JTA.XARminst.recover(XARminst.java:130)
          ???? at com.ibm.ws.Transaction.JTA.XARecoveryData.recover(XARecoveryData.java:673)
          ???? at com.ibm.ws.Transaction.JTA.RecoveryManager.resync(RecoveryManager.java:1369)
          ???? at com.ibm.ws.Transaction.JTA.ResyncThread.run(RecoveryManager.java:1440)

          ApplicationMg A WSVR0200I: Starting application: IBMUTC

          該錯誤是由于事務管理程序無法執(zhí)行 XA 恢復操作。Oracle 明確的返回錯誤 XAER_RMERR。作為最后一個錯誤, XAER_RMERR 指出了 XA 發(fā)生了一些問題。這表明 WebSphere 沒有使用 Oracle 正常的關閉連接,可能是由于其中一個服務器沒有正常關閉,或者是全都沒有正常關閉。因為 WebSphere Application Server 試圖重新建立連接,則 Oracle 需要回滾進程中的任何事務,但是使用 WebSphere 登錄到數(shù)據(jù)庫的 Oracle 用戶(在本范例中是 scott )不能執(zhí)行恢復工作。

          解決方法是為 Oracle 用戶賦予權限以執(zhí)行恢復操作,特別是訪問內部使用的 Oracle 表以管理恢復。在 SQL Plus 中以 SYSOPERSYSDBA 身份運行下列命令:

           grant select on DBA_PENDING_TRANSACTIONS to PUBLIC 

          如果您不希望將該權限授予所有的用戶,可以僅指定錯誤中列出的用戶(在本范例中是 scott)。然后重新啟動數(shù)據(jù)庫,這一次您應該能夠成功的重啟 WebSphere 服務器。

          posted on 2007-02-04 12:23 jncz 閱讀(2806) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 高州市| 黑河市| 礼泉县| 乳山市| 达拉特旗| 新疆| 息烽县| 温州市| 冷水江市| 子长县| 黔南| 汾阳市| 隆尧县| 南江县| 乐东| 镇雄县| 丹棱县| 璧山县| 凭祥市| 忻城县| 平邑县| 迁安市| 莎车县| 凤山县| 武乡县| 儋州市| 延吉市| 天镇县| 兴义市| 五台县| 清新县| 石柱| 浙江省| 永年县| 南宁市| 稻城县| 建水县| 马龙县| 罗甸县| 新龙县| 辰溪县|