4 Replies Latest reply on Oct 17, 2003 11:13 PM by ovs_nagi

    Missing payloads on CTRL-c or System crash

    ovs_nagi

      I have the set up on jboss3.2+tomcat
      1.An MDB with Auto-acknowledge tied to a queue.
      2.The messages in the queue are persistent.
      3.MDB starts a transaction for every message and rollsback on exception.

      when on a ctrl-c or system crash , i observe that, a few messages are missed out.

      do we have any control on such conditions?
      when said a guaranteed delivery, why is my message missing?

      The messages neither goes to DLQ..

      TIA

        • 1. Re: Missing payloads on CTRL-c or System crash

          Post the ejb-jar.xml and jboss.xml for your mdb

          Regards,
          Adrian

          • 2. Re: Missing payloads on CTRL-c or System crash
            ovs_nagi

            ejb-jar.xml
            -------------
            <message-driven>
            <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
            <ejb-name>ScenarioQueueHandler</ejb-name>
            <ejb-class>com.ikigo.server.ejbs.scenarioprocessorsession.scenarioqueuehandler.ScenarioQueueHandler</ejb-class>
            <transaction-type>Container</transaction-type>
            <message-driven-destination>
            <destination-type>javax.jms.Queue</destination-type>
            </message-driven-destination>
            <ejb-local-ref>
            <ejb-ref-name>ejb/ScenarioProcessorLocal</ejb-ref-name>
            <ejb-ref-type>Session</ejb-ref-type>
            <local-home>com.ikigo.server.ejbs.scenarioprocessorsession.ScenarioProcessorLocalHome</local-home>
            com.ikigo.server.ejbs.scenarioprocessorsession.ScenarioProcessorLocal
            <ejb-link>scenarioprocessorsession.jar#ScenarioProcessorBean</ejb-link>
            </ejb-local-ref>
            <resource-ref>
            <res-ref-name>jms/QCF</res-ref-name>
            <res-type>javax.jms.XAQueueConnectionFactory</res-type>
            <res-auth>Container</res-auth>
            </resource-ref>
            </message-driven>

            jboss.xml
            -----------
            <container-configuration extends="Standard Message Driven Bean">
            <container-name>Ikigo ScenarioQueue MDB</container-name>
            <container-pool-conf>
            10
            true
            </container-pool-conf>
            <invoker-proxy-binding-name>Ikigo ScenarioQueue binding</invoker-proxy-binding-name>
            </container-configuration>
            </container-configurations>
            <message-driven>
            <configuration-name>Ikigo ScenarioQueue MDB</configuration-name>
            <ejb-name>ScenarioQueueHandler</ejb-name>
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageVersionLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackagLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgInProcessScenarioLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgLibraryLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackagePayloadLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPayloadAssignedUserLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageScenarioLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPayloadsReceivedLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageStatusHistoryLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageStatusLookupLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgScenarioSchedulLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgScenarioPayloadLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageLibraryLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPackageAssignedUserLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IsmOutputmodelerDatabasLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgRolePrivilegLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgUserLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgRolLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgPrivilegLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgUserRolLocalHome
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgUserProperty
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgRoleProperty
            jboss.j2ee:service=EJB,jndiName=IKIGO.IkgTemplatLocalHome
            <destination-jndi-name>queue/ScenarioQueue</destination-jndi-name>
            <resource-ref>
            <res-ref-name>jms/QCF</res-ref-name>
            <jndi-name>java:/XAConnectionFactory</jndi-name>
            </resource-ref>
            <ejb-local-ref>
            <ejb-ref-name>ejb/ScenarioProcessorLocal</ejb-ref-name>
            <local-jndi-name>ScenarioProcessorLocal</local-jndi-name>
            </ejb-local-ref>
            </message-driven>
            <invoker-proxy-binding>
            Ikigo ScenarioQueue binding
            <invoker-mbean>default</invoker-mbean>
            <proxy-factory>org.jboss.ejb.plugins.jms.JMSContainerInvoker</proxy-factory>
            <proxy-factory-config>
            DefaultJMSProvider
            StdJMSPool
            15
            1

            10

            queue/DLQ
            5
            0


            </proxy-factory-config>
            </invoker-proxy-binding>


            note: i am using file persistance for JMS

            • 3. Re: Missing payloads on CTRL-c or System crash

              Is this a deliberatley broken configuration?

              1) You don't have onMessage() marked with a "Required"
              transaction.
              2) The server session pool is loading 15 messages into
              sessions but you only allowing 10 mdbs to process those
              messages.

              I will try your configuration to see whether I can reproduce
              the problem you describe.

              Regards,
              Adrian

              • 4. Re: Missing payloads on CTRL-c or System crash
                ovs_nagi

                Hi Adrian,
                Thnx for ur extended support.
                1.sorry for the broken ejb-jar.xml, i do have the transaction Required marked on onMessage()
                <assembly-descriptor>
                <container-transaction>

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

                <trans-attribute>Required</trans-attribute>
                </container-transaction>
                </assembly-descriptor>
                2.the value given for the container-pool-conf is being ingnored by jboss.so i had to give a value required for my functional behaviour in the invoker-proxy-binding.pl. let me know if i am wrong here.