Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-4078

Calling methods in SessionBeans of another transaction context

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 9.0.0.Alpha1
    • EJB
    • None
    • Java 8.25 Win7-64bit

      We have an Application running well on JBoss 5. It's a pure EJB3.0 application, no EJB2 parts.

      We have JarA.jar with it's own transaction context and JarB.jar with it's own transaction context. Each with it's own datasource.

      In JarA we have

      @Entity
      class EntityA...

      @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
      public EntityA doSomeActionsInContextB()

      { EntityA object = <retrieve from database>; return objct; }

      In JarB we have

      SessionBean v = getSessionBeanFromContextA();
      EntityA object = v.doSomeActionsInContextB();

      In JBoss we simply had to set

      <property name="com.arjuna.ats.jta.supportSubtransactions" value="YES"/>
      <property name="com.arjuna.ats.jta.jtaTMImplementation" value="com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple"/>

      in server/standard/conf/jbossts-properties.xml to allow nested transactions that made the above possible.

      Now in 8.1 and 9.0 nightlybuild (calls itself RC3) this is not possible anymore.

      The error messge is the same as in old JBoss 5 without subtransactions configured:

      WARN [com.arjuna.ats.arjuna] (default task-33) ARJUNA012140: Adding multiple last resources is disallowed. Trying to add LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@21c99d7b[connectionListener=3b646dfc connectionManager=78a4cb30 warned=false currentXid=< formatId=131077, gtrid_length=45, bqual_length=36, tx_uid=0:ffffc0a8de8a:77959edf:5464a877:785, node_name=VisioDesk-primary, branch_uid=0:ffffc0a8de8a:77959edf:5464a877:78e, subordinatenodename=null, eis_name=java:/VISIONET_COMMON_DS > productName=INGRES productVersion=II 9.2.4 (a64.sol/100) jndiName=java:/VISIONET_COMMON_DS])), but already have LastResourceRecord(XAOnePhaseResource(LocalXAResourceImpl@3286d1fb[connectionListener=268fa4c6 connectionManager=2664884b warned=false currentXid=< formatId=131077, gtrid_length=45, bqual_length=36, tx_uid=0:ffffc0a8de8a:77959edf:5464a877:785, node_name=VisioDesk-primary, branch_uid=0:ffffc0a8de8a:77959edf:5464a877:78a, subordinatenodename=null, eis_name=java:/VISIODESK_DS > productName=INGRES productVersion=II 9.2.4 (a64.sol/100) jndiName=java:/VISIODESK_DS]))
      WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-33) SQL Error: 0, SQLState: null
      ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-33) javax.resource.ResourceException: IJ000457: Unchecked throwable in managedConnectionReconnected() cl=org.jboss.jca.core.connectionmanager.listener.TxConnectionListener@3b646dfc[state=NORMAL managed connection=org.jboss.jca.adapters.jdbc.local.LocalManagedConnection@69d8390d connection handles=0 lastUse=1415882936317 trackByTx=false pool=org.jboss.jca.core.connectionmanager.pool.strategy.OnePool@130ebfdb mcp=SemaphoreArrayListManagedConnectionPool@65ed5c71[pool=VISIONET_COMMON_DS] xaResource=LocalXAResourceImpl@21c99d7b[connectionListener=3b646dfc connectionManager=78a4cb30 warned=false currentXid=null productName=INGRES productVersion=II 9.2.4 (a64.sol/100) jndiName=java:/VISIONET_COMMON_DS] txSync=null]

      And there is no way to set subtransactions allowed. Reading http://www.jboss.org//quickstarts/eap/jts/index.html shows outdated examples not working in Wildfly 8 and 9
      No ideas from the community: https://developer.jboss.org/message/909762

              dlloyd@redhat.com David Lloyd
              lindner-1 Stefan Lindner (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: