Hi everybody
In 4.1.2.
I developped a queuing and multi-threaded mechanism just behind JMS listener
: each time a message comes, a thread is prepared, enqueued (Executor) and
executed only when an other one dies. I can manage the maximum number of
active threads.
When I used AUTO_ACKNOWLEDGE Session mode, all was right.
As soon as I used CLIENT_ACKNOWLEDGE Mode, I began to have some exceptions
2009-01-30 11:50:07,584 [127.0.0.1:50600] DEBUG Service
- Async error occurred: javax.jms.JMSException: Could not correlate
acknowledgment with dispatched message: MessageAck {commandId = 86,
responseRequired = false, ackType = 0, consumerId =
ID:ytsvmx01s-34011-1233312603631-1:1:1:1, firstMessageId = null,
lastMessageId = ID:ytsvmx01s-35902-1233312036244-1:1:11:1:237, destination =
queue://CATE-CHARGE-Charge, transactionId = null, messageCount = 500}
javax.jms.JMSException: Could not correlate acknowledgment with dispatched
message: MessageAck {commandId = 86, responseRequired = false, ackType = 0,
consumerId = ID:ytsvmx01s-34011-1233312603631-1:1:1:1, firstMessageId =
null, lastMessageId = ID:ytsvmx01s-35902-1233312036244-1:1:11:1:237,
destination = queue://CATE-CHARGE-Charge, transactionId = null, messageCount
= 500}
at
org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:222)
which appeared and all finished by crashing : some messages seems to stay in
queues until I stopped ActiveMQ.
I suspected the fact that I tried to acknowledge some messages already
acknowledge by previous call since acknowledge are not made in the same
order than messages come on the listener.
So I just installed 5.2 and try to use the INDIVIDUAL_ACKNOWLEDGE mode which
is more adapted to my way of managing asynchronous incoming messages.
And it's the same thing
First :
2009-01-30 17:21:22,012 [127.0.0.1:56345] ERROR Service
- Async error occurred: javax.jms.JMSException: Could not correlate
acknowledgment with dispatched message: MessageAck {commandId = 3358,
responseRequired = false, ackType = 0, consumerId =
ID:ytsvmx01s-49014-1233332445917-0:1:1:1, firstMessageId =
ID:ytsvmx01s-52231-1233332438071-0:1:16:1:122, lastMessageId =
ID:ytsvmx01s-52231-1233332438071-0:1:14:1:362, destination =
queue://CATE-CHARGE-ReponseCharge, transactionId = null, messageCount =
1500}
javax.jms.JMSException: Could not correlate acknowledgment with dispatched
message: MessageAck {commandId = 3358, responseRequired = false, ackType =
0, consumerId = ID:ytsvmx01s-49014-1233332445917-0:1:1:1, firstMessageId =
ID:ytsvmx01s-52231-1233332438071-0:1:16:1:122, lastMessageId =
ID:ytsvmx01s-52231-1233332438071-0:1:14:1:362, destination =
queue://CATE-CHARGE-ReponseCharge, transactionId = null, messageCount =
1500}
....
then
2009-01-30 17:21:25,893 [127.0.0.1:56345] ERROR Service
- Async error occurred: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.activemq.broker.region.Queue.send(Queue.java:328)
at
org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:350)
at
org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:437)
....
I don't think that my reference on javax.jms.message is bad when I use
acknowledge method.
Has anybody a track to follow for me ?
Eric
--
View this message in context:
http://www.nabble.com/What-can-be-the-reason---tp21750762p21750762.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.