12 Replies Latest reply on Jun 21, 2016 12:54 PM by Tom Jenkinson

    Method end on PGXAConnection has been called twice

    Florian Mélot Newbie

      Hi community,

       

      I'm working currently on migration from Jboss 5 to Wildfly 8. Our products use datasource to get all datas.

       

      Our application use EJB (also migrating from 2 to 3), the first EJB (security) called another EJB (user permission) to get information from database.

       

      My issue is meeting when I'm trying to call database for getting information.

       

      Debugging knows me that methods of PGXAConnection called (in order) are :

      Constructor

      getConnection

      start

      end

      prepare

      end

       

      On the 2nd call of end, the state has been already set to STATE_IDLE and throw "new PGXAException(GT.tr("tried to call end without corresponding start call"), XAException.XAER_PROTO)"

       

      I've found this topic here (Postgres XA-Datasource fails in JTS mode) but it not solve my error .

       

      Please see below full stack trace :

      at org.postgresql.xa.PGXAConnection.end(PGXAConnection.java:254)

          at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:295)

          at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)

          at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.rollback(XAResourceRecord.java:338) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]

          at com.arjuna.ArjunaOTS.OTSAbstractRecordPOA._invoke(OTSAbstractRecordPOA.java:215) [narayana-jts-jacorb-5.0.0.Final.jar:5.0.0.Final (revision: 9aa71)]

          at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:306) [jacorb-2.3.2-jbossorg-5.jar:2.3.2-jbossorg-5]

          at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:626) [jacorb-2.3.2-jbossorg-5.jar:2.3.2-jbossorg-5]

          at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:769) [jacorb-2.3.2-jbossorg-5.jar:2.3.2-jbossorg-5]

       

      Have you any ideas ?

       

       

      Thanks by advance,

      Florian

        • 1. Re: Method end on PGXAConnection has been called twice
          jaikiran pai Master

          This stacktrace looks something that's more JBoss Transactions than WildFly. I don't seem to have permissions to move this thread to that forum. Maybe tomjenkinson can help with the exception you are seeing?

          • 2. Re: Method end on PGXAConnection has been called twice
            Tom Jenkinson Master

            Hi Florian,

             

            WildFly 8 is already quite old, please can you try to replicate this on WildFly 10?

             

            As you can see here: https://github.com/jbosstm/narayana/blob/master/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java#L339

             

            The xa_end is well guarded so it shouldn't be happening. Also, I wonder why it is going via the rollback route? Did your transaction timeout?

             

            If you don't have a test case that is reproducible please can you supply a log file with com.arjuna on trace.

             

            Thanks!

            Tom

             

            PS Transaction queries are best asked over here: Narayana

            • 3. Re: Method end on PGXAConnection has been called twice
              Florian Mélot Newbie

              Hi Tom,

               

              Unfortunately, I cannot migrate to Wildfly 10, others products have already migrate to Wildfly 8 and we are trying  to standardize version.

               

              Do you think this problem could be come from bad configuration of datasource ?

               

              Transaction is'nt too long, just after get information from database, transaction was closed.

               

              Please see below log with arjuna :

               

              2016-06-16 11:43:49,726 ERROR [stderr] (undertow task-26) org.omg.CORBA.TRANSACTION_ROLLEDBACK

              2016-06-16 11:43:49,727 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple.commit(ArjunaTransactionImple.java:414)

              2016-06-16 11:43:49,727 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.internal.jts.ControlWrapper.commit(ControlWrapper.java:243)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.internal.jts.orbspecific.CurrentImple.commit(CurrentImple.java:247)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.jts.extensions.AtomicTransaction.commit(AtomicTransaction.java:276)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.internal.jta.transaction.jts.TransactionImple.commitAndDisassociate(TransactionImple.java:1310)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.internal.jta.transaction.jts.BaseTransaction.commit(BaseTransaction.java:130)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

              2016-06-16 11:43:49,728 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:93)

              2016-06-16 11:43:49,729 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)

              2016-06-16 11:43:49,729 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:340)

              2016-06-16 11:43:49,729 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)

              2016-06-16 11:43:49,729 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,729 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79)

              2016-06-16 11:43:49,730 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,730 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)

              2016-06-16 11:43:49,730 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,730 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)

              2016-06-16 11:43:49,730 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,731 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95)

              2016-06-16 11:43:49,731 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,731 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)

              2016-06-16 11:43:49,731 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,731 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)

              2016-06-16 11:43:49,732 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,732 ERROR [stderr] (undertow task-26)     at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)

              2016-06-16 11:43:49,732 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,732 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)

              2016-06-16 11:43:49,732 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,733 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)

              2016-06-16 11:43:49,733 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,733 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)

              2016-06-16 11:43:49,733 ERROR [stderr] (undertow task-26)     at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:448)

              2016-06-16 11:43:49,734 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)

              2016-06-16 11:43:49,734 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,734 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)

              2016-06-16 11:43:49,734 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)

              2016-06-16 11:43:49,734 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

              2016-06-16 11:43:49,735 ERROR [stderr] (undertow task-26)     at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

              2016-06-16 11:43:49,735 ERROR [stderr] (undertow task-26)     at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)

              2016-06-16 11:43:49,735 ERROR [stderr] (undertow task-26)     at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:245)

              2016-06-16 11:43:49,735 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:184)

              2016-06-16 11:43:49,735 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBObjectInterceptor.handleInvocation(EJBObjectInterceptor.java:58)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBHomeInterceptor.handleInvocation(EJBHomeInterceptor.java:83)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:42)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

              2016-06-16 11:43:49,736 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:125)

              2016-06-16 11:43:49,737 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

              2016-06-16 11:43:49,737 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:253)

              2016-06-16 11:43:49,737 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:198)

              2016-06-16 11:43:49,738 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:181)

              2016-06-16 11:43:49,738 ERROR [stderr] (undertow task-26)     at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:144)

              2016-06-16 11:43:49,738 ERROR [stderr] (undertow task-26)     at com.sun.proxy.$Proxy142.getMandatActeurListe(Unknown Source)

               

               

               

              2016-06-16 11:43:50,383 ERROR [com.ideosante.ideoforms.servlet.FrontServlet] (undertow task-26) Transaction rolled back: javax.ejb.EJBTransactionRolledbackException: Transaction rolled back

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleEndTransactionException(CMTTxInterceptor.java:139)

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:119)

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:277)

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:340)

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)

                  at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:448)

                  at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)

                  at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)

                  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)

                  at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

                  at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)

                  at org.jboss.as.ejb3.remote.LocalEjbReceiver.processInvocation(LocalEjbReceiver.java:245)

                  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:184)

                  at org.jboss.ejb.client.EJBObjectInterceptor.handleInvocation(EJBObjectInterceptor.java:58)

                  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

                  at org.jboss.ejb.client.EJBHomeInterceptor.handleInvocation(EJBHomeInterceptor.java:83)

                  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

                  at org.jboss.ejb.client.TransactionInterceptor.handleInvocation(TransactionInterceptor.java:42)

                  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

                  at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:125)

                  at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:186)

                  at org.jboss.ejb.client.EJBInvocationHandler.sendRequestWithPossibleRetries(EJBInvocationHandler.java:253)

                  at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:198)

                  at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:181)

                  at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:144)

                  at com.sun.proxy.$Proxy142.getMandatActeurListe(Unknown Source)

                  at com.ideosante.worklist.provider.MyEhrProvider.searchEhrWithMandate(MyEhrProvider.java:202)

                  at com.ideosante.worklist.provider.MyEhrProvider.provider(MyEhrProvider.java:68)

                  at com.sqli.sante.common.tablelist.worklist.ToJson.getData(ToJson.java:1192)

                  at com.sqli.sante.common.tablelist.worklist.ToJson.getWkskData(ToJson.java:1050)

                  at com.sqli.sante.common.tablelist.worklist.ToJson.getWksPojoDataTable(ToJson.java:616)

                  at com.ideosante.controller.common.tablelist.worklist.controller.DatatableJsonFromWksConfController.process(DatatableJsonFromWksConfController.java:83)

                  at com.ideosante.controller.common.tablelist.worklist.controller.DatatableJsonFromWksConfController.process(DatatableJsonFromWksConfController.java:35)

                  at com.ideosante.ideoforms.utils.handler.impl.ControllerCallHandler.handle(ControllerCallHandler.java:33)

                  at com.ideosante.ideoforms.utils.handler.impl.ControllerCallHandler.handle(ControllerCallHandler.java:15)

                  at com.ideosante.ideoforms.controller.impl.controller.GenericController.perform(GenericController.java:50)

                  at com.ideosante.ideoforms.servlet.FrontServlet.service(FrontServlet.java:96)

                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)

                  at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)

                  at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)

                  at com.sqli.sante.ideomed.socle.clinicalcontext.filter.IdeoMedClinicalContextV3Filter.doFilter(IdeoMedClinicalContextV3Filter.java:223)

                  at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

                  at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

                  at com.sqli.ideosso.cas.client3.filter.IdeoSSOFilter.doFilter(IdeoSSOFilter.java:157)

                  at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

                  at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

                  at com.sqli.sante.ideomed.socle.clinicalcontext.filter.IdeoMedSSOFilter.doFilter(IdeoMedSSOFilter.java:122)

                  at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)

                  at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)

                  at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)

                  at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)

                  at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)

                  at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)

                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

                  at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)

                  at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)

                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

                  at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)

                  at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:63)

                  at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)

                  at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)

                  at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)

                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

                  at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)

                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

                  at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)

                  at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)

                  at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:247)

                  at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:76)

                  at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:166)

                  at io.undertow.server.Connectors.executeRootHandler(Connectors.java:197)

                  at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:759)

                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_40]

                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]

                  at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]

              Caused by: javax.transaction.RollbackException: org.omg.CORBA.TRANSACTION_ROLLEDBACK

                  at com.arjuna.ats.internal.jta.transaction.jts.TransactionImple.commitAndDisassociate(TransactionImple.java:1338)

                  at com.arjuna.ats.internal.jta.transaction.jts.BaseTransaction.commit(BaseTransaction.java:130)

                  at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:75)

                  at org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(CMTTxInterceptor.java:93)

                  ... 95 more

              • 4. Re: Method end on PGXAConnection has been called twice
                Tom Jenkinson Master

                Hi Florian,

                 

                Please can you enable TRACE logging for com.arjuna and attach a log?


                Thanks,

                Tom

                • 5. Re: Method end on PGXAConnection has been called twice
                  Florian Mélot Newbie

                  Please find log file attach to this message.

                   

                  After analyze postgresql.conf, max_prepared_statement isn't activate.

                   

                  Do you know why max_prepared_statement is required ? It's a "new" requirement for Wildfly ?

                   

                  After activate max_prepared_statement, it's work fine but I didn't know why

                  • 6. Re: Method end on PGXAConnection has been called twice
                    Tom Jenkinson Master

                    I am not sure about the max_prepared_statement, maybe maeste is aware?

                     

                    But I take it you are saying that when your config is right the case is closed?

                    • 7. Re: Method end on PGXAConnection has been called twice
                      Tom Jenkinson Master

                      OK, so I can see in the log that prepare failed due to the max_prepared_transactions issue you mentioned. That looks like raw postgres config to me.

                       

                      Caused by: org.postgresql.util.PSQLException: ERREUR: les transactions préparées sont désactivées

                        Indice : Configure max_prepared_transactions à une valeur différente de zéro.

                       

                      Anyway it explains why the code goes via the rollback route.

                       

                      The attached log doesn't look to have TRACE and it looks like it was snipped before the xa_end error?

                      • 9. Re: Method end on PGXAConnection has been called twice
                        Florian Mélot Newbie

                        Sorry to delay.

                         

                        This is the log, I'm apologizing, I'm a newbie with standalone config

                        • 10. Re: Method end on PGXAConnection has been called twice
                          Tom Jenkinson Master

                          From looking at the log I can see that the prepare failed with RMERR:

                           

                          XA Spec:

                          "[XAER_RMERR] The resource manager encountered an error in preparing to commit the transaction branch’s work. The specified XID may or may not have been prepared."

                           

                          So we have to call rollback to be sure.

                           

                          I think given that you are getting XA_PROTO it means that we should be calling rollback.

                           

                          The defect is the check here:

                          narayana/XAResourceRecord.java at master · jbosstm/narayana · GitHub

                          Won't pick up XA resources that were successfully xa_ended previously.

                           

                          When xa_end _is_ successful we need to change the TxInfo association.

                           

                          I have a patch for this, please can you try it to see if it addresses your issue (you will need to revert your max_prepared fix temporarily to be able to replicate): Only call xa_end if the XAResource is associated by tomjenkinson · Pull Request #1025 · jbosstm/narayana · GitHub

                          Also, please can you raise a Agile Board - JBoss Issue Tracker issue with a link to this discussion?

                          • 11. Re: Method end on PGXAConnection has been called twice
                            Florian Mélot Newbie

                            Hi Tom,

                             

                            Sorry to delay, I have create an issue on KB : https://issues.jboss.org/browse/WFLY-6748

                             

                            I'll test your patch as soon as possible