3

在升级到 Oracle JDBC 瘦驱动程序导致SQLException: Unexpected exception while enlisting XAConnection(WebLogic Server 10.0,oracle 版本)中,我们收到下面列出的错误。

我们确实遵循了 Oracle 的建议

  1. 更改 weblogic 中的全局超时,即对于 JDBC 连接池,将其设置XASetTransactionTimeouttrueXATransactionTimeout为零 当此参数设置为零时,XAResource 会话超时将设置为全局事务超时。因此需要修改 WLS 的超时时间
  2. 如果问题仍然存在,可以通过设置来避免KeepXAConnTillTxComplete="true"

    数据库产品版本:Oracle9i 企业版 9.2.0.5.0 版 - 具有分区、OLAP 和 Oracle 数据挖掘选项的生产 JServer 9.2.0.5.0 版 - 生产
    JDBC 驱动程序名称:Oracle JDBC 驱动程序
    JDBC 驱动程序版本:11.1.0.7.0 -生产

我们知道一种选择是不使用 XA 连接,但在我们的情况下这是不可能的。我们肯定需要使用 XA 连接。

java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResource.XAER_PROTO start() failed on resource 'serviceDataSource': XAER_PROTO : Routine was invoked in an inproper context
oracle.jdbc.xa.OracleXAException
        at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1101)
        at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:237)
        at weblogic.jdbc.wrapper.VendorXAResource.start(VendorXAResource.java:50)
        at weblogic.jdbc.jta.DataSource.start(DataSource.java:696)
        at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1183)
        at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1116)
        at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:275)
        at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:508)
        at weblogic.transaction.internal.ServerTransactionImpl.enlistResource(ServerTransactionImpl.java:435)
        at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1407)
        at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1331)
        at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:426)
        at weblogic.jdbc.jta.DataSource.connect(DataSource.java:383)
        at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:339)
4

1 回答 1

1

经过 Oracle 的咨询后,我们决定将驱动程序升级到可用的最新驱动程序。这似乎解决了这个问题。

于 2010-09-17T20:32:21.573 回答