1

We have a JMS (hornetq) instance with many queues, for one we have a strict max pool with only one Listener instance (process cannot be run in parallel)

<strict-max-pool name="mdb-strict-single-instance-pool-md"
   max-pool-size="1" instance-acquisition-timeout="600"
   instance-acquisition-timeout-unit="MINUTES" />

As far as I understand the instance-acquisition-timeout option define the time a process will wait on retrieving a consumer bean for an available one.

The guy who configured the pool said me he put a so high value to avoid to loose the message in the queue in case of unique consumer being busy for a too long time.

My questions are :

  • Is the JMS message really removed from the queue when the consumer acquisition fails ((Failed to acquire a permit within...). If yes what does it become (moved to dead letter queue, just deleted, etc...) ?
  • Is there a risk of thread contention with such a high timeout value (what happen if 50 message are posted while the consumer bean is still processing the current one) ?
Gab
  • 7,869
  • 4
  • 37
  • 68

0 Answers0