[prev in list] [next in list] [prev in thread] [next in thread] 

List:       activemq-users
Subject:    RE: AMQ fails to process messages after a faulty restart
From:       Michal Singer <Michal.Singer () expand ! com>
Date:       2011-03-29 13:16:25
Message-ID: 1FE2A3CDB6130D4498085C16E78118F5A6348DDC21 () exchange
[Download RAW message or body]

But actually, after one message like that many of the messages appear invalid so \
there is no recovery from that, and as a result only restarting the service will \
solve this. This seems like a real problem, which needs to be solved.

-----Original Message-----
From: Gary Tully [mailto:gary.tully@gmail.com] 
Sent: ג 29 מרץ 2011 15:12
To: users@activemq.apache.org
Subject: Re: AMQ fails to process messages after a faulty restart

that exception is expected in some circumstances. The broker comes
alive again, the client using the failover transport resends an ack,
as it still has state.
The broker has not yet dispatched any messages so it cannot ack the message.

There have been improvements in this area in 5.3, especially when
transactions are required.
Also, that error is downgraded to a warn. It occurs because sending
the ack is async so there
is no one to report the error to.

On 29 March 2011 13:58, Michal Singer <Michal.Singer@expand.com> wrote:
> Hi, i am using AMQ 5.2.0 on a multi process application to communicate between \
> processes. I am configuring AMQ using Spring version 2.5.6
> 
> I am NOT using persistent AMQ.
> 
> Sometimes after a faulty restart such as: kill java, electric power down - after \
> raise, there are errors: 
> ActiveMQ Transport: tcp:///127.0.0.1:1138 [] 2011-03-22 11:24:21,640 ERROR \
> [org.apache.activemq.broker.TransportConnection.Service] Async error occurred: \
> javax.jms.JMSException: Could not correlate acknowledgment with dispatched message: \
> MessageAck {commandId = 15, responseRequired = false, ackType = 0, consumerId = \
> ID:EV-1134-1300785825140-0:1:2:1, firstMessageId = \
> ID:EV-1034-1300785740343-2:11:1:1:1, lastMessageId = \
> ID:EV-1034-1300785740343-2:11:1:1:1, destination = queue://destinationAgentQueue, \
>                 transactionId = null, messageCount = 0}
> javax.jms.JMSException: Could not correlate acknowledgment with dispatched message: \
> MessageAck {commandId = 15, responseRequired = false, ackType = 0, consumerId = \
> ID:EV-1134-1300785825140-0:1:2:1, firstMessageId = \
> ID:EV-1034-1300785740343-2:11:1:1:1, lastMessageId = \
> ID:EV-1034-1300785740343-2:11:1:1:1, destination = queue://destinationAgentQueue, \
> transactionId = null, messageCount = 0} at \
> org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:304)
>  at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373)
>  at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462)
>  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:456)
>  at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
> at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
>  at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
>  at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>  at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
>  at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>  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(Unknown Source)
> 
> Thanks, Michal
> 



-- 
http://blog.garytully.com
http://fusesource.com


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic