qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alessandro Crotti - SMC Consulting <a.cro...@smcconsulting.it>
Subject Qpid JMS 0.11.1 AMQP 1.0 client - How can be delayed next consuming attempt after a consuming failed
Date Mon, 17 Dec 2018 16:28:23 GMT

I have this needs:

  * I receive message M1
  * I process M1 and for a particular scenario I can't process this
    message right now
  * If I send back ackType MODIFIED_FAILED, the message will be
    immediately available for another consuming attempt, but I would
    like to "delay" it a bit. In this way I can receive other messages
    and then, in the next consuming attempt, probably this message M1
    can be consumed successfully.

We consume messages from Azure Service Bus queue and asking their 
experts how to delay next consuming message attempts, they told us: for 
those messages you shouldn't send any acknowledge, just "let them go", 
in this way Azure Service Bus keeps them locked until "Duration Lock" 
expires. "Duration Lock" is the period of time that the queue waits for 
an acknowledge, if it expires, the message is considered lost and it 
comes available for another message consuming attempt.

I tried to avoid acknowledge for this kind of messages, but I noticed 
this behavior:

  * I receive message M1
  * I process M1 and for a particular scenario I can't process this
    message right now
  * I avoid to send acknowledge and so method "onMessage()" finishes
  * I receive message M2
  * I process M2 successfully
  * I call acknowledge with acktype ACCEPTED for M2.
      o Qpid library uses ACCEPTED ackType for all messages which are
        not yet acknowleged, so it sends ACCEPTED even for M1.

Having this behavior, I must send acknowledge for each message, 
otherwise I could send the wrong ackType.

My questions are:

  * Is this a bug or a feature this behavior of sending acknowledge even
    for all messages not yet acknowledged?
  * Is there a best practise to delay a next consuming attempt after a
    consuming failed?

Best Regards

SMC Consulting <http://www.smcconsulting.it>

facebook <http://www.facebook.com/SMC-Consulting-Srl-597548223675024/> 
linkeding <http://www.linkedin.com/company/smc-consulting-srl> 
*Alessandro Crotti*
Senior Developer

tel:  +39 342 573 4450
skype:  crotti.alessandro

*SMC Consulting* <http://www.smcconsulting.it>
Via dell'industria, 87 41012 Carpi (MO) - Italy
tel: +39 059 664875

CONFIDENTIALITY NOTICE: This message may contain confidential and/or 
privileged information.
If you are not the intended recipient, please do not use its contents 
for any purpose, advise
the sender immediately by reply e-mail and delete this message and any 
attachments without retaining a copy.

View raw message