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.