Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-4153

Messages are not being redelivered correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.1, 2.1.1
    • None
    • ActiveMQ
    • Security Level: public (Regular issues)
    • None
    • Geronimo 2.1.1, Windows XP SP3. Java 1.6_0_6

    Description

      I am experiencing problems with redelivery of messages in activemq/geronimo it seems to not redeliver the message when a system exception occurs. I know that ActiveMQ has a max redelivery count, however the messages seem to stop being processed after 1-2 attempts. I am not getting anywhere near the max redelivery count.

      I enclose a very simple example. This ear simple has 1 MDB which will automatically throw an EJBException. (In the source code I have configured it to use ActiveMQ default queues and connection factory this was only done so you can quickly see what happens without setting up your own queue and connection factory. I also enclose a runnable class which will send a message to the queue.)

      The expected result should be MDB retires 5/10/xxx amount of times whatever the max redelivery count is set to and then stops redelivering the message. However as I have said earlier on I am not getting this, seems to only retry once.

      package test;

      import javax.ejb.*;
      import javax.jms.MessageListener;
      import javax.jms.Message;

      @MessageDriven(activationConfig =

      { @ActivationConfigProperty( propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty( propertyName = "destination", propertyValue = TestMDBBean.QUEUE_NAME) ,@ActivationConfigProperty( propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge") }

      )
      //@TransactionManagement(TransactionManagementType.CONTAINER)
      @TransactionAttribute(TransactionAttributeType.REQUIRED)
      public class TestMDBBean implements MessageListener {
      public static final String QUEUE_NAME = "SendReceiveQueue";//"ErrorQueue";;
      public void onMessage(Message message)

      { System.err.println("This is a test"); throw new EJBException("This is a lovely test"); }

      }

      open-ejbjar.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <openejb-jar
      xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.1"
      xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"
      xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1"
      xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
      xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0">
      <enterprise-beans>
      <message-driven>
      <ejb-name>TestMDBBean</ejb-name>
      <resource-adapter>
      <!-<resource-link>MyJMSResources</resource-link>->
      <resource-link>ActiveMQ RA</resource-link>
      </resource-adapter>
      </message-driven>

      </enterprise-beans>
      </openejb-jar>

      Geronimo application

      <?xml version="1.0" encoding="UTF-8"?>
      <application
      xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.2"
      xmlns:security="http://geronimo.apache.org/xml/ns/security-1.2"
      xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2" application-name="My">

      <sys:environment>
      <sys:moduleId>
      <sys:groupId>tester</sys:groupId>
      <sys:artifactId>mdb</sys:artifactId>
      <sys:version>1</sys:version>
      <sys:type>car</sys:type>
      </sys:moduleId>
      <sys:dependencies>

      <!--
      <sys:dependency>
      <sys:groupId>My.jms</sys:groupId>
      <sys:artifactId>MyJMSResources</sys:artifactId>
      <sys:version>1.0</sys:version>
      <sys:type>rar</sys:type>
      </sys:dependency>
      -->

      <sys:dependency>
      <sys:groupId>org.apache.geronimo.configs</sys:groupId>
      <sys:artifactId>activemq-ra</sys:artifactId>
      <sys:version>2.1.1</sys:version>
      <sys:type>car</sys:type>
      </sys:dependency>

      </sys:dependencies>

      <sys:hidden-classes/>
      <sys:non-overridable-classes/>
      </sys:environment>

      </application>

      Attachments

        1. javaEEApplication.ear
          5 kB
          Mohammed Imran
        2. src.zip
          4 kB
          Mohammed Imran

        Activity

          People

            Unassigned Unassigned
            imy30 Mohammed Imran
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: