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