ActiveMQ消费者处于被阻止状态

时间:2014-05-23 08:17:15

标签: java concurrency jms activemq spring-jms

我得到这个非常奇怪和随机的错误。

似乎我的线程在出列时被卡住了。 我无法理解为什么他们处于“阻塞”模式而不是处于“阻塞”状态 “TIME_WAITING”模式......

导致此行为的原因是什么?当发生这种情况时,我没有得到任何回复 回来但消息正在处理..

当我查看线程转储时,它通常处于TIME_WAIT模式。但 这个它处于阻塞模式。

我正在使用ActiveMQ 5.5.0 btw ...

似乎SimplePrioirtyMessageDispatchChannel正在获取 重用,它将采用相同的方法。 synchronized方法导致它被阻止....

Thread 21906: (state = BLOCKED)
  - java.lang.Object.wait(long) @bci=0 (Compiled frame; information may
be imprecise)
  -
org.apache.activemq.SimplePriorityMessageDispatchChannel.dequeue(long)
@bci=57, line=89 (Compiled frame)
  - org.apache.activemq.ActiveMQMessageConsumer.dequeue(long) @bci=19,
line=452 (Compiled frame)
  - org.apache.activemq.ActiveMQMessageConsumer.receive(long) @bci=53,
line=577 (Compiled frame)
  -
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(javax.jms.MessageConsumer)
@bci=23, line=429 (Compiled frame)
  -
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(java.lang.Object,
javax.jms.Session, javax.jms.MessageConsumer,
org.springframework.transaction.TransactionStatus) @bci=119, line=310
(Compiled frame)
  -
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(java.lang.Object,
javax.jms.Session, javax.jms.MessageConsumer) @bci=94, line=263
(Compiled frame)
  -
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener()
@bci=17, line=1058 (Compiled frame)
  -
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop()
@bci=153, line=1050 (Compiled frame)

由于

0 个答案:

没有答案