2011-09-10 3 views
1

를 연결이 오라클로부터 획득 할 때 나는 다음과 같은 예외가 직면하고있어 :어떻게 Bitronix JTA 복구를 사용하지

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()가 일부 보조금을 필요로 설명했다. 복구가 필요하지 않으며 오라클 설정을 적용하지 않으므로 Bitronix 복구를 비활성화하고 싶습니다. Bitronix Configuration docs과 관련된 아무 것도 발견하지 못했습니다. Bitronix 복구 기능을 비활성화 할 수 있는지 물어보고 싶습니다.

답변

3

XA를 사용하는 경우 복구가 필요하며 XA 프로토콜의 일부입니다. XA에 대한 복구를 구현하지 않으면 XA 프로토콜을 위반하게됩니다. 그 의미를 정말로 이해하고 있습니까? 그렇지 않으면 다른 프로토콜이 필요합니다.

+0

JBossTS에 대한 복구를 비활성화 할 수 있었기 때문에 BTM으로 복구를 비활성화 할 수도 있어야한다고 생각했습니다. JTA에서 2PC 만 필요합니다. 그것은 회복을 의미합니까? – Mohsen

+0

예, XA 사양을 읽어 보시기 바랍니다. – steve

관련 문제