我在JBoss上部署了一个Webapp,该Webapp使用ActiveMQ资源适配器5.15.4连接到外部JMS代理(ActiveMQ 5.15.4)。由于ActiveMQMessageConsumer阻止,因此无法取消部署或关闭Webapp。 (整个JBoss容器甚至无法停止)。仅当代理关闭时,Webapp关闭(和容器)才会继续。
线程转储显示以下信息:
java.lang.Thread.State:TIMED_WAITING(在对象监视器上)在 java.lang.Object.wait(本机方法)在 org.apache.activemq.FifoMessageDispatchChannel.dequeue(FifoMessageDispatchChannel.java:74) -在org.apache.activemq.ActiveMQMessageConsumer.dequeue(ActiveMQMessageConsumer.java:486)处锁定<0x000000008bc1a1a8>(java.lang.Object) 在 org.apache.activemq.ActiveMQMessageConsumer.receive(ActiveMQMessageConsumer.java:653)
MessageConsumer正在读取队列,例如:
Message message = this.consumer.receive(1000);
有什么建议吗?在activeMQ源中,我看到预取策略为0会导致不确定的等待,但是将其设置为较高的值则没有结果。