You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by varoa <an...@gmail.com> on 2007/10/24 19:37:05 UTC
Misterious loss of messages, debug hints? clues?
Hi, I'm having some problems with a producer losing messages at random. I
have already checked http://activemq.apache.org/my-producer-blocks.html but
I don't think it's related to that problem. I have a non-persistent topic,
the producer sends around 30-50 messages/sec and my consumer is quite fast.
I can't see any locking issues, no connections are being dropped (the
producer monitors the connection constantly and there is not a single
problem in the connection), I do receive many messages / second, but still a
good amount is lost in the ether.
I'm trying to use the utility scripts provided but I can't get much help out
of them. Does the discrepancy between DispatchCount and EnqueueCount mean
anything? What are exactly those 2 figures (I can't find a description for
any). Any ideas on how can I debug this?
I'm pasting some info here in case it's of any use:
./query -QTopic=FOO.TOPIC outputs:
Type = Topic
DispatchCount = 33208
Destination = FOO.TOPIC
QueueSize = 0
Name = FOO.TOPIC
DequeueCount = 0
MemoryPercentageUsed = 0
ConsumerCount = 2
MemoryLimit = 9223372036854775807
EnqueueCount = 16604
BrokerName = localhost
My Topic has the following config:
<policyEntry topic="FOO.>">
<dispatchPolicy>
<strictOrderDispatchPolicy />
</dispatchPolicy>
<timedSubscriptionRecoveryPolicy recoverDuration="300000" />
</subscriptionRecoveryPolicy -->
<pendingMessageLimitStrategy>
<constantPendingMessageLimitStrategy limit="5000"/>
</pendingMessageLimitStrategy>
</policyEntry>
- Producer -
connection via
failover:(tcp://10.0.0.118:61616)?initialReconnectDelay=3000&maxReconnectAttempts=20
config: TimeToLive to 5 min, delivery mode to NON_PERSISTENT
code:
TextMessage msg = session.createTextMessage();
msg.setText(txt);
this.publish(msg);
- Consumer -
connection via
failover:(tcp://10.0.0.118:61616)?initialReconnectDelay=100&jms.optimizeAcknowledge=true&jms.dispatchAsync=true&jms.optimizeAcknowledge=true
it extends MessageListener and ExceptionListener, overrides Connect with:
this.connection = factory.createConnection();
this.session = this.connection.createSession(false, this.sessionType);
this.topic = this.session.createTopic(this.topicName);
MessageConsumer consumer = session.createConsumer(this.topic,
this.messageSelector, this.noLocal);
consumer.setMessageListener(this);
this.connection.setExceptionListener(this);
this.connection.start();
and receives via:
public void onMessage(Message message) {
..
}
--
View this message in context: http://www.nabble.com/Misterious-loss-of-messages%2C-debug-hints--clues--tf4685187s2354.html#a13388689
Sent from the ActiveMQ - User mailing list archive at Nabble.com.