singleThreadExecutor.execute (() -> this.closeConsumer(consumer));

private void closeConsumer(MessageConsumer consumer) {
    try {
         consumer.close();
   }
  catch (Exception e) {
     logger.warn(e.getMessage, e);
  }
}


A good thing of using the listener still is that you save some threads in
your client.


if you close from an executor, you're safe.

On Sat, Oct 1, 2022 at 3:12 PM John Lilley
<john.lil...@redpointglobal.com.invalid> wrote:

> FYI, I developed an aversion to using receive() back when I was originally
> building our POC with RabbitMQ and trying to build our framework around
> receive() instead of onMessage(), but found that RabbitMQ’s JMS receive()
> implementation was broken.  Eventually we decided that ActiveMQ was a
> better choice, but our use of onMessage() was by then solidified.
>
>
>
> Cheers,
>
> john
>
>
>
>
> [image: rg] <https://www.redpointglobal.com/>
>
> John Lilley
>
> Chief Architect, Redpoint Global Inc.
>
> 888 Worcester Street, Suite 200 Wellesley, MA 02482
>
> *M: *+1 7209385761 <+1%207209385761> | john.lil...@redpointglobal.com
>
> *From:* John Lilley <john.lil...@redpointglobal.com.INVALID>
> *Sent:* Saturday, October 1, 2022 12:07 PM
> *To:* users@activemq.apache.org
> *Subject:* RE: Disabling prefetch
>
>
>
> **** [Caution] This email is from an external source. Please use caution
> responding, opening attachments or clicking embedded links. ****
>
>
>
> Understood… unfortunately we have a framework that generates code using
> onMessage() and it is a matter of expedience not to change that whole
> framework right now.  However I would like to change it to use receive()
> once the rest of our Artemis migration is validated.
>
>
>
> john
>
>
>
>
>
> [image: rg]
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,GuuBno5AH7NQNgrTDSrHQmK6mxf_nCtVKeX87oLOkFJV3Zz2I_RuYgZ51RFtELNsx5HkUpsjs5i0WCChhG3jXbJ6PumlKEG3V5hQYd9FkQ,,&typo=1>
>
> *John Lilley *
>
> *Chief Architect, Redpoint Global Inc. *
>
> 888 Worcester Street, Suite 200 Wellesley, MA 02482
>
> *M: *+1 7209385761 <+1%207209385761> | john.lil...@redpointglobal.com
>
> *From:* Clebert Suconic <clebert.suco...@gmail.com>
> *Sent:* Friday, September 30, 2022 9:01 PM
> *To:* users@activemq.apache.org
> *Subject:* Re: Disabling prefetch
>
>
>
> **** [Caution] This email is from an external source. Please use caution
> responding, opening attachments or clicking embedded links. ****
>
>
>
> I would not use a listener for a consumer that will only receive a single
> message anyways.
>
>
>
> On Fri, Sep 30, 2022 at 9:46 AM John Lilley <
> john.lil...@redpointglobal.com.invalid> wrote:
>
> Clebert,
>
> Thanks for the reply.  I’ll try your suggestion.
>
> I’m not closing the consumer specifically to clear the prefetch buffer;
> rather I’m closing the consumer to stop receiving more messages.  The
> existence of pre-fetch messages is undesirable in that case, because (1) as
> you point out it is an anti-pattern, and (2) a process that fails to close
> its consumer in a timely fashion will hog the prefetched messages and
> prevent others from processing them.
>
> john
>
>
>
>
>
> [image: rg]
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,KHzEvVkENwL6T7EFSxGICR_CFo-HpPU51sD4bZnFFKroXGHPfKIJx5Yboyg3w7HYrEBrKNGABSt21fLnbNKQxSIVCglyWQafTQWNFsckAdACQLZKvHNhrqm_&typo=1>
>
> *John Lilley *
>
> *Chief Architect, Redpoint Global Inc. *
>
> 888 Worcester Street, Suite 200 Wellesley, MA 02482
> <https://www.google.com/maps/search/888+Worcester+Street,+Suite+200+Wellesley,+MA+02482?entry=gmail&source=g>
>
> *M: *+1 7209385761 <+1%207209385761> | john.lil...@redpointglobal.com
>
> *From:* Clebert Suconic <clebert.suco...@gmail.com>
> *Sent:* Friday, September 30, 2022 6:12 AM
> *To:* users@activemq.apache.org
> *Subject:* Re: Disabling prefetch
>
>
>
> **** [Caution] This email is from an external source. Please use caution
> responding, opening attachments or clicking embedded links. ****
>
>
>
> BTW closing a consumer to clear the fetched buffer is an anti pattern
> either AMQ5 or Artemis. Set no prefetch or any slow consumer option
> instead.  That would be a waste of network and CPU.
>
>
>
> On Fri, Sep 30, 2022 at 4:33 AM Clebert Suconic <clebert.suco...@gmail.com>
> wrote:
>
>
>
> This is done by setting consumerWindowSize to 0 in your connections.
>
>
>
> There a note about slow consumers in the documentation.  I’m on the phone
> now and I can’t get you a link.  If you can’t find it let me know and I
> will post it for you.
>
>
>
> On Thu, Sep 29, 2022 at 6:13 PM John Lilley <
> john.lil...@redpointglobal.com.invalid> wrote:
>
> Related to my previous post (“Processing only one message”), under AMQ 5
> I’ve had to disable prefetch to prevent a  “batch server” from hogging
> messages for a while until it is done and closes the consumer/session (at
> which point the un-ACKed messages are delivered to other servers).  This
> was done by decorating the queue name:
>
> *if *(*disablePrefetch*) {
>
> *// See https://activemq.apache.org/what-is-the-prefetch-limit-for
> <https://activemq.apache.org/what-is-the-prefetch-limit-for>    *queueName
> = queueName + *"?consumer.prefetchSize=1"*;
> }
>
>
>
> I am unsure, but I suspect this approach doesn’t work for Artemis.  What
> should I do instead?  Or maybe the answer to my previous post will make
> this moot.
>
>
>
> Thanks
>
> john
>
>
>
> *John Lilley
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>*
>
> *Chief Architect, Redpoint Global Inc.
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>*
>
> 888 Worcester Street, Suite 200 Wellesley, MA 02482
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> *M: +1 7209385761 | john.lil...@redpointglobal.com
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>*
>
>
> PLEASE NOTE: This e-mail from Redpoint Global Inc. (“Redpoint”) is
> confidential and is intended solely for the use of the individual(s) to
> whom it is addressed. If you believe you received this e-mail in error,
> please notify the sender immediately, delete the e-mail from your computer
> and do not copy, print or disclose it to anyone else. If you properly
> received this e-mail as a customer, partner or vendor of Redpoint, you
> should maintain its contents in confidence subject to the terms and
> conditions of your agreement(s) with Redpoint.
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> --
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> Clebert Suconic
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> --
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> Clebert Suconic
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
>
> PLEASE NOTE: This e-mail from Redpoint Global Inc. (“Redpoint”) is
> confidential and is intended solely for the use of the individual(s) to
> whom it is addressed. If you believe you received this e-mail in error,
> please notify the sender immediately, delete the e-mail from your computer
> and do not copy, print or disclose it to anyone else. If you properly
> received this e-mail as a customer, partner or vendor of Redpoint, you
> should maintain its contents in confidence subject to the terms and
> conditions of your agreement(s) with Redpoint.
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> --
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
> Clebert Suconic
> <https://linkprotect.cudasvc.com/url?a=https%3a%2f%2fwww.redpointglobal.com%2f&c=E,1,hbQyfJtTMCieiIHykTGmwi6tO8ENrzRddQJGtbFXCn09SaXzIi4bTZ-k2ZKCO8_1ie7GilmyfctL16AHUZuCaG1pRT2EnX88GqNIeVwNBvjfg5oj&typo=1>
>
>
> PLEASE NOTE: This e-mail from Redpoint Global Inc. (“Redpoint”) is
> confidential and is intended solely for the use of the individual(s) to
> whom it is addressed. If you believe you received this e-mail in error,
> please notify the sender immediately, delete the e-mail from your computer
> and do not copy, print or disclose it to anyone else. If you properly
> received this e-mail as a customer, partner or vendor of Redpoint, you
> should maintain its contents in confidence subject to the terms and
> conditions of your agreement(s) with Redpoint.
>
> PLEASE NOTE: This e-mail from Redpoint Global Inc. (“Redpoint”) is
> confidential and is intended solely for the use of the individual(s) to
> whom it is addressed. If you believe you received this e-mail in error,
> please notify the sender immediately, delete the e-mail from your computer
> and do not copy, print or disclose it to anyone else. If you properly
> received this e-mail as a customer, partner or vendor of Redpoint, you
> should maintain its contents in confidence subject to the terms and
> conditions of your agreement(s) with Redpoint.
>


-- 
Clebert Suconic

Reply via email to