[ 
https://issues.apache.org/jira/browse/AMQ-3111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ashwini kuntamukkala updated AMQ-3111:
--------------------------------------

    Attachment: FailingMessageRedeliveredDespiteBeingMovedToExceptionQueue.java

This is a unit test showing the negative pending message count.

> Negative Pending Message Count
> ------------------------------
>
>                 Key: AMQ-3111
>                 URL: https://issues.apache.org/jira/browse/AMQ-3111
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.0
>         Environment: Windows XP, ActiveMQ 5.4.0
>            Reporter: ashwini kuntamukkala
>         Attachments: 
> FailingMessageRedeliveredDespiteBeingMovedToExceptionQueue.java
>
>
> When a queue connection redelivery policy's max redelivery time  is set to 
> -1, and the bad message which is failing constantly needs to be moved to 
> exception queue manually (JMX JConsole, ActiveMQ WebConsole), then dequeue is 
> accounted twice for the same message.
> Say at time T0 queue is empty
> queue has a registered listener
> T1 => message gets put on the queue => enqueue = 1, dequeue = 0, pending = 1
> T2 .. T3 .. T4..T5 this message is constantly failing because of some runtime 
> exception
> Using ActiveMQ webconsole, we move this to exception queue...and have logic 
> in the consumer to commit the session if this is a redelivered message that 
> does not exist on the queue, Refer AMQ 3110
> Then,
> at T6
> enqueue count = 1, dequeue count = 2, pending count = -1
> Attached is the unit test showing this issue.
> Please refer the log pasted below.
> -------------------------
> 0 [JMX connector] INFO org.mortbay.log - Logging to 
> org.slf4j.impl.SimpleLogger(org.mortbay.log) via org.mortbay.log.Slf4jLog
> 2011-01-03 16:49:17,036 INFO  (BrokerService) - Using Persistence Adapter: 
> MemoryPersistenceAdapter
> 2011-01-03 16:49:17,036 INFO  (ManagementContext) - JMX consoles can connect 
> to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
> 2011-01-03 16:49:17,036 INFO  (BrokerService) - ActiveMQ 5.4.0 JMS Message 
> Broker (localhost) is starting
> 2011-01-03 16:49:17,036 INFO  (BrokerService) - For help or more information 
> please see: http://activemq.apache.org/
> 2011-01-03 16:49:17,317 INFO  (SchedulerBroker) - Scheduler using directory: 
> activemq-data\scheduler
> 2011-01-03 16:49:17,364 INFO  (BrokerService) - ActiveMQ JMS Message Broker 
> (localhost, ID:akuntamukkala-2412-1294094957083-0:0) started
> 2011-01-03 16:49:17,411 INFO  (TransportConnector) - Connector vm://localhost 
> Started
> test.exception.queue
> Mon Jan 03 16:49:17 CST 2011 : Number of messages in test.exception.queue =  1
> Mon Jan 03 16:49:17 CST 2011 : Number of messages in test.queue = 1
> Mon Jan 03 16:49:17 CST 2011 : test.queue : enqueue = 1, dequeue count = 0
> Mon Jan 03 16:49:17 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:18 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:18 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:19 CST 2011 : test.queue : enqueue = 1, dequeue count = 0
> Mon Jan 03 16:49:19 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:19 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:20 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> Mon Jan 03 16:49:20 CST 2011 : Number of messages in test.queue after MOVE = 0
> Mon Jan 03 16:49:20 CST 2011 : Number of messages in test.exception.queue 
> after MOVE =  2
> Mon Jan 03 16:49:20 CST 2011 : test.queue : enqueue = 1, dequeue count = 1
> Mon Jan 03 16:49:20 CST 2011 - Message received by consumer = 
> ID:akuntamukkala-2412-1294094957083-3:1:1:2:1
> numberOfTimeMessageWasReceived 7
> number of times message was received after moving 7
> Mon Jan 03 16:49:23 CST 2011 : Final test.queue : enqueue = 1, dequeue count 
> = 2, pending message count = -1
> 2011-01-03 16:49:23,739 INFO  (BrokerService) - ActiveMQ Message Broker 
> (localhost, ID:akuntamukkala-2412-1294094957083-0:0) is shutting down
> 2011-01-03 16:49:23,739 INFO  (TransportConnector) - Connector vm://localhost 
> Stopped
> 2011-01-03 16:49:23,770 INFO  (BrokerService) - ActiveMQ JMS Message Broker 
> (localhost, ID:akuntamukkala-2412-1294094957083-0:0) stopped
> -----
> Please run the attached Junit test and see this issue. Since AMQ 3110 is 
> still unresolved, the only way we could get rid of the bad message being 
> redelivered despite having been moved to an exception queue was by checking 
> the redelivery counter and if the message was still on the queue, if not, 
> then we acknowledge the session so subsequent messages can be processed.
> Thank you,
> Ashwini Kuntamukkala

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to