4 Replies Latest reply on Dec 7, 2006 11:23 AM by Stephen Burdeau

    "incorrect invocation sequence" warning

    Stephen Burdeau Newbie

      I am running JBoss Application Server 4.0.5 with JBoss Transactions 4.2.2. I am using the default configuration with the local JTA.

      When I run an inbound transaction (using JCA 1.5 transaction inflow) I get the following warning message in the JBoss server.log.

      2006-12-06 13:59:28,881 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_29] - BasicAction.Begin of action -3fc02a9f:874:457712d0:46 ignored - incorrect invocation sequence


      What does this mean? Is it a significant problem?

        • 1. Re:
          Weston M. Price Master

          Just for clarification, is this JMS inflow, or is this a custom JCA adapter?

          • 2. Re:
            Stephen Burdeau Newbie

            This is a custom JCA 1.5 resource adapter

            • 3. Re:
              Mark Little Master

               

              "burdeasa" wrote:
              I am running JBoss Application Server 4.0.5 with JBoss Transactions 4.2.2. I am using the default configuration with the local JTA.

              When I run an inbound transaction (using JCA 1.5 transaction inflow) I get the following warning message in the JBoss server.log.

              2006-12-06 13:59:28,881 WARN [com.arjuna.ats.arjuna.logging.arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.BasicAction_29] - BasicAction.Begin of action -3fc02a9f:874:457712d0:46 ignored - incorrect invocation sequence


              What does this mean? Is it a significant problem?



              It means that something is trying to start a transaction when the transaction has already been started. It could be significant if the subsequent caller expects to be starting a new transaction, for example.

              • 4. Re:
                Stephen Burdeau Newbie

                Thanks for the clarification.

                I would not expect the transaction to already be started, so I think I need to persue this further.


                First of all, I run the exact same test with the local JTA (using JBoss AS "default" config) and with the distributed JTA (using JBoss AS "all" config). When using the local JTA I get the warning in question. When using the distributed JTA, I do not get any warning or error.


                Here is the scenario:
                1) The RA does a WorkManager.scheduleWork with a null ExecutionContext passed and a Work object called DtpInboundWork.
                2) The DtpInboundWork.run method does a JNDI lookup of a stateless session EJB named interSvci.
                3) The DtpInboundWork.run method invokes the method interSvci.getRecordLayoutList and returns.
                4) The DtpInboundWork.run method creates a new Work object called DtpInboundTxWork.
                5) The DtpInboundWork.run method calls WorkManager.doWork passing an ExecutionContext with an XID defined and the DtpInboundTxWork object.
                6) The DtpInboundTxWork.run method invokes the method interSvci.dtpSvcStart and returns.

                Based on trace messages I see in the JBoss server.log file, it looks like the warning occurs between steps 3 and 6.


                The ejb-jar.xml file for interSvci looks like this:

                <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>

                <ejb-jar>
                <enterprise-beans>

                <ejb-name>interSvci</ejb-name>
                com.unisys.dtp.inbound.DtpInboundEndpointHome
                com.unisys.dtp.inbound.DtpInboundEndpoint
                <ejb-class>com.unisys.dtp.test.simple.intersvci.interSvci</ejb-class>
                <session-type>Stateless</session-type>
                <transaction-type>Container</transaction-type>

                </enterprise-beans>

                <assembly-descriptor>
                <container-transaction>

                <ejb-name>interSvci</ejb-name>
                <method-name>*</method-name>

                <trans-attribute>Supports</trans-attribute>
                </container-transaction>
                </assembly-descriptor>

                </ejb-jar>


                Since all EJB methods are configured as "Supports" a transaction, I don't expect the first EJB call to run under a transaction. For the second EJB call, there should be a transaction due to the ExecutionContext which was associated with DtpInboundTxWork.