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