【问题标题】:How to disable Bitronix JTA recovery如何禁用 Bitronix JTA 恢复
【发布时间】:2011-11-14 09:12:19
【问题描述】:

从 Oracle 获取连接时,我遇到以下异常:

javax.transaction.xa.XAException
    at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:705)
    at bitronix.tm.recovery.RecoveryHelper.recover(RecoveryHelper.java:103)
    at bitronix.tm.recovery.RecoveryHelper.recover(RecoveryHelper.java:61)
    at bitronix.tm.recovery.IncrementalRecoverer.recover(IncrementalRecoverer.java:64)
    at bitronix.tm.resource.common.XAPool.getConnectionHandle(XAPool.java:106)
    at bitronix.tm.resource.common.XAPool.getConnectionHandle(XAPool.java:97)
    at bitronix.tm.resource.jdbc.PoolingDataSource.getConnection(PoolingDataSource.java:207)
    at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:71)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)
    at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:60)
    at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.enlistInCurrentTransaction(ExtendedEntityManagerCreator.java:421)
    at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.doJoinTransaction(ExtendedEntityManagerCreator.java:398)
    at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:350)
    at $Proxy48.joinTransaction(Unknown Source)
    at org.springframework.orm.jpa.EntityManagerFactoryUtils.doGetTransactionalEntityManager(EntityManagerFactoryUtils.java:174)
    at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:211)
    at $Proxy48.getDelegate(Unknown Source)

herehere 所述,OracleXAResource.recover() 需要一些授权。我不需要恢复,也不喜欢应用这些 oracle 设置,所以我想禁用 Bitronix 恢复。我在Bitronix Configuration docs 中没有发现任何相关内容,所以我想在这里问一下是否可以禁用 Bitronix 恢复功能?

【问题讨论】:

    标签: oracle hibernate jdbc jta


    【解决方案1】:

    如果您使用 XA,您需要恢复,它是 XA 协议的一部分。不为 XA 实现恢复将违反 XA 协议。你确定你真的理解其中的含义吗?否则你需要一个不同的协议。

    【讨论】:

    • 我能够禁用 JBossTS 的恢复,所以我认为应该也可以禁用 BTM 的恢复。从JTA,我只需要2PC。这是否意味着恢复?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多