activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Danielius Jurna <daniel...@elitnet.lt>
Subject Bug in failover transport
Date Tue, 07 Nov 2006 07:46:05 GMT

I think there's a bug in failover transport (in version 4.0.2).
After failover transport reconnect, if there is prefetched messages on the
client, client sends invalid ack messages to the server. After that client
stops receiving messages and it must be restarted.
 This happens only when there are more messages in the queue, than queue
prefetch size.

On the client we receive lots of warrnings like this:

2006-11-07 09:34:13,614 WARN  [AcitveMQ Connection Worker:
tcp://localhost:61616] org.apache.activemq.ActiveMQConnection - Async
exception with no exception listener: javax.jms.JMSException: Invalid
acknowledgment: MessageAck {commandId = 200, responseRequired = false,
ackType = 2, consumerId = ID:dj-34091-1162884805650-2:0:2:1, firstMessageId
= null, lastMessageId = ID:dj-34091-1162884805650-2:0:1:1:91, destination =
queue://Test, transactionId = null, messageCount = 1}
javax.jms.JMSException: Invalid acknowledgment: MessageAck {commandId = 200,
responseRequired = false, ackType = 2, consumerId =
ID:dj-34091-1162884805650-2:0:2:1, firstMessageId = null, lastMessageId =
ID:dj-34091-1162884805650-2:0:1:1:91, destination = queue://Test,
transactionId = null, messageCount = 1}
	at
org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:185)
	at
org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:234)
	at
org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:366)
	at
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:177)
	at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:66)
	at
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:66)
	at
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:79)
	at
org.apache.activemq.broker.AbstractConnection.processMessageAck(AbstractConnection.java:441)
	at org.apache.activemq.command.MessageAck.visit(MessageAck.java:179)
	at
org.apache.activemq.broker.AbstractConnection.service(AbstractConnection.java:237)
	at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:61)
	at
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:92)
	at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
	at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:124)
	at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:123)
	at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:88)
	at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
	at java.lang.Thread.run(Thread.java:595)

And on the server a lot of these entries:

INFO  PrefetchSubscription           - Could not correlate acknowledgment
with dispatched message: MessageAck {commandId = 200, responseRequired =
false, ackType = 2, consumerId = ID:dj-34091-1162884805650-2:0:2:1,
firstMessageId = null, lastMessageId = ID:dj-34091-1162884805650-2:0:1:1:91,
destination = queue://Test, transactionId = null, messageCount = 1}

There's an Jira issue whith a test case attached to it.
https://issues.apache.org/activemq/browse/AMQ-1027

Any suggestions or workarounds? Setting perfetch size to 1 desn't help
-- 
View this message in context: http://www.nabble.com/Bug-in-failover-transport-tf2587218.html#a7213887
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message