3 Replies Latest reply on Aug 22, 2008 5:23 AM by marklittle

    jta.allowMultipleLastResources ???

      I've been working to migrate an existing application to JBossESB 4.4 (mysql).

      With the default configuration, I 've conflicts between simultaneous transactions.

      Example error:

      2008-08-20 19:27:03,970 WARN [com.arjuna.ats.jta.logging.loggerI18N]
      [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow] [com.arjuna.ats.internal.jta.transaction.arjunacore.lastResource.disallow] Adding multiple last resources is disallowed. Current resource is org.jboss.resource.connectionmanager.TxConnectionManager$LocalXAResource@cb577
      2008-08-20 19:27:03,974 WARN [org.hibernate.util.JDBCExceptionReporter]
      SQL Error: 0, SQLState: null
      2008-08-20 19:27:03,974 ERROR [org.hibernate.util.JDBCExceptionReporter]
      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: -3f57159a:e458:48ac99b2:179
      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: -3f57159a:e458:48ac99b2:179 status: ActionStatus.ABORT_ONLY
      >))
      2008-08-20 19:27:03,975 INFO
      [org.hibernate.event.def.DefaultLoadEventListener] Error performing load command
      org.hibernate.exception.GenericJDBCException: Cannot open connection
       at
      org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
       at
      org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
       at
      org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
       at
      org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
       at
      org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
       at
      org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
       at
      org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
       at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
       at org.hibernate.loader.Loader.doQuery(Loader.java:673)
       at
      org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
       at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
       at
      org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
       at
      org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
       at
      org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
       at
      org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
       at
      org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
       at
      org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
       at
      org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
       at
      org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
       at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
       at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
       at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
       at
      org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:174)
       at
      org.jboss.ejb3.entity.TransactionScopedEntityManager.find(TransactionScopedEntityManager.java:171)
      



      I've found this solution (in a previous post), at the general jbossjta-properties.xml:

      <property name=com.arjuna.ats.jta.allowMultipleLastResources value=TRUE>



      Why ? What is the real problem ?

      I only have several concurrent connections with transactions. I think It should be very frequent to find this errors.



      Thanks in advance,
      Eric