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.