我们刚刚在调用发送消息时发现非常奇怪的异常,堆栈跟踪如下所示:
- unable to send message - Implement me. @ root cause @ := javax.jms.JMSException: Implement me.
...@ root cause trace := @
javax.jms.JMSException: Implement me.
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1377)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1305)
at org.apache.activemq.ActiveMQSession.send(ActiveMQSession.java:1795)
at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:277)
at org.apache.activemq.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:212)
at org.apache.activemq.ActiveMQMessageProducerSupport.send(ActiveMQMessageProducerSupport.java:300)
at org.apache.activemq.ActiveMQQueueSender.send(ActiveMQQueueSender.java:111)
......
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: Implement me.
at org.fusesource.mq.leveldb.LevelDBStore.getLastProducerSequenceId(LevelDBStore.scala:367)
at org.apache.activemq.broker.TransportConnection.getProducerBrokerExchange(TransportConnection.java:1344)
at org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:451)
at org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:681)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150)
at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)
at org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)
at org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)
at org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
... 1 more
第一次没有发生这种情况,我的意思是,它会在运行的时候成功发送消息,但在某些时候,它只是因为这些错误而失败了。
有人能告诉我是什么原因造成的吗?还是一些提示?
答案 0 :(得分:0)
它似乎来自LevelDB商店中的一些问题。该商店是新的,预计会出现问题。您可以通过更改activemq.xml切换到较旧的更强大的KahaDB存储。如果您可以提供可重现的测试用例,那么最好的办法是在ActiveMQ站点上打开Jira问题。