JMS消息侦听器池和超时行为(无法在...内获取许可)

时间:2014-10-07 11:41:52

标签: java java-ee jms jboss7.x hornetq

我们有一个包含许多队列的JMS(hornetq)实例,其中一个我们有一个严格的最大池,只有一个Listener实例(进程不能并行运行)

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

据我所知,instance-acquisition-timeout选项定义了一个进程在检索可用的一个使用者bean时等待的时间。

配置游泳池的人说我把它放得如此之高以避免在独特消费者忙碌很长时间的情况下丢失队列中的消息。

我的问题是:

  • 当消费者获取失败时,JMS消息是否真正从队列中删除((无法获取...内的许可证)。如果是,它会变成什么样(移动到死信队列,刚删除等等... )?
  • 是否存在具有如此高超时值的线程争用的风险(如果在使用者bean仍在处理当前消息时发布50条消息会发生什么情况?)

0 个答案:

没有答案