2013-12-26 6 views
0

Я использую два отдельных источника данных. Используя EJB3.0, я использовал non-Xa-datasources. У меня есть ошибка примерно так: could not open connection, state-aware object. это было, потому что в одном stateless bean я вызывал второй метод stateless bean, который был связан с другой базой данных. Тогда я изменить datasources structure и изменить его xa-datasources как это:JBoss 7.0.1 исключение xa-datasource. javax.transaction.xa.XAException

<datasources> 
      <xa-datasource jndi-name="java:/ooo" pool-name="ooo" enabled="true" use-java-  context="true"> 
       <xa-datasource-property name="URL"> 
        jdbc:oracle:thin:@xxx.xxx.xxx.xxx:xxxx:orcl 
       </xa-datasource-property> 
       <driver>oracle</driver> 
       <security> 
       </security> 
      </xa-datasource> 
      <xa-datasource jndi-name="java:jboss/mysqlds" pool-name="mysqlds" enabled="true" use-java-context="true"> 
       <xa-datasource-property name="URL"> 
        jdbc:mysql://127.0.0.1/test 
       </xa-datasource-property> 
       <driver>mysql</driver> 
       <security> 
       </security> 
      </xa-datasource> 
      <drivers> 
       <driver name="oracle" module="com.oracle.ojdbc"> 
        <xa-datasource-class>oracle.jdbc.xa.client.OracleXADataSource</xa-datasource-class> 
       </driver> 
       <driver name="mysql" module="com.mysql.jdbc"> 
        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
       </driver> 
      </drivers> 
     </datasources> 

Поэтому у меня есть некоторые ошибки в запуске JBoss, и я поставил mysql module.xml это (dependency> javax.transaction.api.):

<dependencies> 
    <module name="javax.api"/>  
    <module name="javax.transaction.api"/> 
</dependencies> 

Все отлично работает, но, существует warning каждые 2 минуты:

11:00:16,213 WARN [com.arjuna.ats.jta] (Periodic Recovery) ARJUNA016027: Local XARecoveryModule.xaRecovery got XA exception XAException.XAER_RMERR: javax.transaction.xa.XAException 
at oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:709) 
at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.recover(XAManagedConnection.java:358) 
at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.recover(XAResourceWrapperImpl.java:162) 
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecovery(XARecoveryModule.java:503) [jbossjts-4.16.2.Final.jar:] 
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:471) [jbossjts-4.16.2.Final.jar:] 
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.bottomUpRecovery(XARecoveryModule.java:385) [jbossjts-4.16.2.Final.jar:] 
at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:166) [jbossjts-4.16.2.Final.jar:] 
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789) [jbossjts-4.16.2.Final.jar:] 
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371) [jbossjts-4.16.2.Final.jar:] 

ответ

1

Я решаю thi s проблема. Проблема была user. этот пользователь я использую другое приложение, которое уже запущено. Я создал новый user, и все работает нормально

Смежные вопросы