Search code examples
javahibernatejbossjtajboss6.x

how to enable multiple calls to non xa datasource in a transaction jboss 6


In one of our timer ejb we calls to 2 non xa datasources in jboss 6 and we get the following error.

[org.hibernate.util.JDBCExceptionReporter] (http-0.0.0.0-443-4) Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 0:ffff0ab1ded5:1396:544f790a:1842 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: 0:ffff0ab1ded5:1396:544f790a:1842 status: ActionStatus.ABORT_ONLY >))

There are advice's to modify the jbossjta-properties.xml to include the following, but this also did not work as jboss 6 doesn't have this file.

<properties depends=”arjuna” name=”jta”>
<property name=”com.arjuna.ats.jta.allowMultipleLastResources” value=”true”/>

Please let us know on how to enable multiple non xa datasources in a transaction in jboss 6.


Solution

  • After some googling i found that adding the following property in transaction-jboss-beans.xml present in the deploy folder of JBoss 6 for CoreEnvironmentBean bean did the trick.

    <property name="allowMultipleLastResources">true</property>