Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-4889

Setting nonBlockingRedelivery to true doesn't rollback the messages if the Openwire consumer is killed mid processing.

XMLWordPrintable

    • False
    • False
    • Undefined
    • Hide

      Setting nonBlockingRedelivery to false which may not be suitable for some use cases.

      Show
      Setting nonBlockingRedelivery to false which may not be suitable for some use cases.
    • Hide
      1. Start the broker locally.
      2. Build and run this spring-boot application: https://github.com/avi5kdonrh/artemis-spring-test
      3. Send a message to the queue TEST.
      4. Kill the consumer app immediately (I've put the consumer thread to sleep to enforce a delay).
      Show
      Start the broker locally. Build and run this spring-boot application: https://github.com/avi5kdonrh/artemis-spring-test Send a message to the queue TEST. Kill the consumer app immediately (I've put the consumer thread to sleep to enforce a delay).

      If the client JVM is killed  when a message is still processing through an Openwire consumer,

      the messages still remain in the delivering state until the broker is restarted. 

      This only happens when the nonBlockingRedelivery is set to true.

       

      NAME ADDRESS CONSUMER_COUNT MESSAGE_COUNT MESSAGES_ADDED DELIVERING_COUNT
      TEST TEST 0 1 1 1

       

       

      This is what the printdata shows when the message is stuck in the delivering state without any consumer:

       

      ### Surviving Records Summary ###
      2021-04-09 15:21:22,550 WARN  [org.apache.activemq.artemis.journal] AMQ142015: Uncommitted transaction with id 70 found and discarded
      recordID=30;userRecordType=45;isUpdate=false;compactCount=0;Message(messageID=30;userMessageID=f36f3b67-9918-11eb-b08a-66662017fc17;msg=CoreMessage[messageID=30,durable=true,userID=f36f3b67-9918-11eb-b08a-66662017fc17,priority=4, timestamp=Fri Apr 09 15:20:00 IST 2021,expiration=0, durable=true, address=TEST,size=643,properties=TypedProperties[__AMQ_CID=ID:adongre-32751-1617961800046-0:1,_AMQ_GROUP_SEQUENCE=0,__HDR_BROKER_IN_TIME=1617961800734,_AMQ_ROUTING_TYPE=1,__HDR_ARRIVAL=0,__HDR_COMMAND_ID=5,__HDR_PRODUCER_ID=[0000 0036 7B01 0022 4944 3A61 646F 6E67 7265 2D33 3237 3531 2D31 3631 3739 3631 3830 3030 3436 2D31 3A31 0000 0000 0000 0001 0000 0000 0000 0001),__HDR_MESSAGE_ID=[0000 0049 6E00 017B 0100 2249 443A 6164 6F6E 6772 652D 3332 3735 312D 3136  ... 00 0000 0000 0100 0000 0000 0000 0100 0000 0000 0000 0100 0000 0000 0000 00),__HDR_DROPPABLE=false]]@1187903677
      recordID=30;userRecordType=32;isUpdate=true;compactCount=0;AddRef;QueueEncoding [queueID=27]
      
      ### Prepared TX ###
      
      ### Failed Transactions (Missing commit/prepare/rollback record) ###
      Transaction 70 failed with these records:
      - recordID=30;userRecordType=33;isUpdate=true;compactCount=0;ACK;QueueEncoding [queueID=27]

       

       

            gtully@redhat.com Gary Tully
            rhn-support-adongre Avinash Dongre
            Roman Vais Roman Vais
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: