You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by marc2112 <ma...@yahoo.com> on 2009/06/16 16:08:17 UTC
ActiveMQ Exceptions
Hey Folks-
I'm seeing a couple of flavors of exceptions fairly frequently in my JMS consumer. Any ideas on how to resolve or what impact they are causing?
The first flavor is this:
09:46:21,777 ERROR [pool-3-thread-5] [] - Error redispatching unconsumed messages from stale session
java.lang.NullPointerException
at org.apache.activemq.ra.ServerSessionPoolImpl.createServerSessionImpl(ServerSessionPoolImpl.java:63)
at org.apache.activemq.ra.ServerSessionPoolImpl.getServerSession(ServerSessionPoolImpl.java:116)
at org.apache.activemq.ra.ServerSessionPoolImpl.dispatchToSession(ServerSessionPoolImpl.java:244)
at org.apache.activemq.ra.ServerSessionPoolImpl.removeFromPool(ServerSessionPoolImpl.java:225)
at org.apache.activemq.ra.ServerSessionImpl.run(ServerSessionImpl.java:188)
at org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:290)
at org.apache.geronimo.connector.work.pool.NamedRunnable.run(NamedRunnable.java:33)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
The second flavor is this:
09:47:04,692 ERROR [ActiveMQ Connection Worker: tcp://myhost22:61517?wireFormat.maxInactivityDuration=300000] [] - Connection to broker failed: The subscription does not exist: ID:myhost1.mydomain.com-56397-1245085860227-0:18871:-1:2
javax.jms.JMSException: The subscription does not exist: ID:myhost1.mydomain.com-56397-1245085860227-0:18871:-1:2
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
at org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1784)
at org.apache.activemq.ActiveMQConnection$2$1.run(ActiveMQConnection.java:1705)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: The subscription does not exist: ID:myhost1.mydomain.com-56397-1245085860227-0:18871:-1:2
at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:368)
at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:468)
at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:461)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
I am running a two server network-of-brokers topology with both servers running activemq version fuse-5.3.0.2. My network-connector XML config looks like this:
<networkConnectors>
<networkConnector uri="static:(tcp://myhost2:61517?wireFormat.maxInactivityDuration=300000)"
name="bridge-myhost2"
networkTTL="2"
dynamicOnly="true"
conduitSubscriptions="true"
decreaseNetworkConsumerPriority="false">
</networkConnector>
</networkConnectors>
and I have the same config on the other activemq server with the only difference being myhost2->myhost1.
In the activemq logs I see three flavors of exceptions but none at those exact timestamps i see in the consumer.
The first flavor is:
2009-06-16 09:47:04,924 [10.219.120.1:43411] WARN Service - Async error occurred: java.lang.NullPointerException: Context is null
java.lang.NullPointerException: Context is null
at org.apache.activemq.broker.TransportConnection.processBeginTransaction(TransportConnection.java:370)
at org.apache.activemq.command.TransactionInfo.visit(TransactionInfo.java:94)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:619)
The second flavor is this:
2009-06-16 09:47:05,058 [10.2.20.1:43419] WARN Service - Async error occurred: javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = 15, responseRequired = false, ackType = 2, consumerId = ID:myh
ost1.mydomain.com-56397-1245085860227-0:18875:-1:2, firstMessageId = ID:myhost1.mydomain.com-56397-1245085860227-0:18877:1:1:1, lastMessageId = ID:myhost1.mydomain.com-56397-1245085860227-0:18877:1:1:1, destination = queue://Queue.myqueuename, transactionId = TX:ID:myhost1.mydomain.com-56397-1245085860227-0:18875:3, messageCount = 1}; Could not find Message-ID ID:myhost1.mydomain.com-56397-1245085860227-0:18877:1:1:1 in dispatched
-list (start of ack)
javax.jms.JMSException: Unmatched acknowledege: MessageAck {commandId = 15, responseRequired = false, ackType = 2, consumerId = ID:myhost1.mydomain.com-56397-1245085860227-0:18875:-1:2, firstMessageId = ID:myhost1.mydomain.com-56397-12
45085860227-0:18877:1:1:1, lastMessageId = ID:myhost1.mydomain.com-56397-1245085860227-0:18877:1:1:1, destination = queue://Queue.myqueuename, transactionId = TX:ID:myhost1.mydomain.com-56397-12450858
60227-0:18875:3, messageCount = 1}; Could not find Message-ID ID:myhost1.mydomain.com-56397-1245085860227-0:18877:1:1:1 in dispatched-list (start of ack)
at org.apache.activemq.broker.region.PrefetchSubscription.assertAckMatchesDispatched(PrefetchSubscription.java:446)
at org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:208)
at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:377)
at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:468)
at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:461)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:619)
The third flavor is this:
2009-06-16 09:46:21,612 [10.219.120.1:42087] WARN Service - Async error occurred: java.lang.IllegalArgumentException: The subscription does not exist: ID:myhost1.mydomainm.com-56397-1245085860227-0:18864:-1:2
java.lang.IllegalArgumentException: The subscription does not exist: ID:myhost1.mydomain.com-56397-1245085860227-0:18864:-1:2
at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:368)
at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:468)
at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:461)
at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:308)
at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:182)
at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Thread.java:619)
Thanks so much for your help.
---Marc