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.

Reply via email to