Uploaded image for project: 'JBoss A-MQ'
  1. JBoss A-MQ
  2. ENTMQ-1940

scheduler store is growing with redelivery plugin configured and a consumer rollsback

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • JBoss A-MQ 6.3
    • JBoss A-MQ 6.2
    • None
    • None

    Description

      We have a broker configured with:

      <redeliveryPlugin fallbackToDeadLetter="true" sendToDlqIfMaxRetriesExceeded="true">
                      <redeliveryPolicyMap>
                          <redeliveryPolicyMap>
                              <redeliveryPolicyEntries>
                                  <!-- a destination specific policy -->
                                  <redeliveryPolicy queue="FOO.BAR" maximumRedeliveries="3"
      redeliveryDelay="9000" />
                              </redeliveryPolicyEntries>
                              <!-- the fallback policy for all other destinations -->
                              <defaultEntry>
                                  <redeliveryPolicy maximumRedeliveries="0" initialRedeliveryDelay="5000"
      redeliveryDelay="10000" />
                              </defaultEntry>
                          </redeliveryPolicyMap>
                      </redeliveryPolicyMap>
                  </redeliveryPlugin>
      
      

      And a consumer that simply rollsback the session upon receive a message:

                      String msgText;
                      if (msg instanceof TextMessage)
                      {
                              msgText = ((TextMessage)msg).getText();
                              System.out.println("\n\t "+ msgText +", hence rolling back");
                              // Here we are rolling back the session.
                              // The "Hello World" message which we received is not committed, hence it's undelivered and goes back to the TestQ
                              qsession.rollback();
                      }
      
      

      If you push a large number of messages of a large size, you will see the scheduler store grow:

      i.e,

      sjavurek  staff    32M Sep 16 16:16 ./ILP-B/scheduler/db-35.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-36.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-37.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-38.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-39.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:14 ./ILP-B/scheduler/db-4.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-40.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-41.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-42.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-43.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-44.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-45.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-46.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:17 ./ILP-B/scheduler/db-47.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:18 ./ILP-B/scheduler/db-48.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:18 ./ILP-B/scheduler/db-49.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:14 ./ILP-B/scheduler/db-5.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:15 ./ILP-B/scheduler/db-6.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:15 ./ILP-B/scheduler/db-7.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:15 ./ILP-B/scheduler/db-8.log
      -rw-r--r--  1 sjavurek  staff    32M Sep 16 16:15 ./ILP-B/scheduler/db-9.log
      -rw-r--r--  1 sjavurek  staff     8B Sep 16 16:05 ./ILP-B/scheduler/lock
      -rw-r--r--  1 sjavurek  staff   1.6M Sep 16 16:18 ./ILP-B/scheduler/scheduleDB.data
      -rw-r--r--  1 sjavurek  staff   922K Sep 16 16:18 ./ILP-B/scheduler/scheduleDB.redo
      

      Receiving the messages of the DLQ does not force the scheduler to cleanup.

      Attachments

        1. kahadb6221168.log
          17 kB
        2. scheduler621168.log
          20 kB
        3. TestCase.zip
          7 kB

        Activity

          People

            Unassigned Unassigned
            rhn-support-sjavurek Susan Javurek
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: