Обновление до тонкого драйвера Oracle JDBC приводит к SQLException: непредвиденное исключение при использовании XAConnection - PullRequest
3 голосов
/ 31 августа 2010

При обновлении до тонкого драйвера Oracle JDBC SQLException: Unexpected exception while enlisting XAConnection (WebLogic Server 10.0, версия oracle) мы получаем ошибку, указанную ниже.

Мы последовали совету Oracle до

  1. изменить глобальное время ожидания в weblogic, то есть для пулов соединений JDBC установите XASetTransactionTimeout на true и XATransactionTimeout на ноль Если для этого параметра задано значение 0, время ожидания сеанса XAResource будет установлено равным глобальному времени ожидания транзакции. Следовательно, время ожидания на WLS должно быть изменено
  2. Если проблема остается, ее можно избежать, установив KeepXAConnTillTxComplete="true".

    Версия продукта базы данных: Oracle9i Enterprise Edition, выпуск 9.2.0.5.0 - Производство С опциями разделения, OLAP и Oracle Data Mining, выпуск JServer 9.2.0.5.0 - Производство
    Имя драйвера JDBC: драйвер JDBC Oracle
    Версия драйвера JDBC: 11.1.0.7.0-Production

Мы знаем, что одним из вариантов не является использование 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)

1 Ответ

0 голосов
/ 18 сентября 2010

После такой консультации с Oracle мы решили обновить драйвер до последней доступной версии.Похоже, это решило проблему.

...