« Return to Thread: [jira] Created: (AMQ-1763) Acknowledgment of Messages consumed from VirtualTopic consumer queues fails

[jira] Commented: (AMQ-1763) Acknowledgment of Messages consumed from VirtualTopic consumer queues fails

by JIRA jira@apache.org :: Rate this Message:

Reply to Author | View in Thread


    [ https://issues.apache.org/activemq/browse/AMQ-1763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=52619#action_52619 ]

Mark Gellings commented on AMQ-1763:
------------------------------------

Thanks for you effort and quick response to this Gary.

The reason the above test may be passing is because you are using the same connection when instantiating the consumers.

The issue is when a subsequent connection is made (or consumer is disposed) the messages get redelivered.  They do not get redelivered on the same connection.  The broker just spits out the error as mentioned in the original post of the reporter.  The next connection the broker redelivers the same messages.  The pattern repeats.

As you suggested, I've attached a patch (testPatch.patch) to extend this test and ConsumerBean to try and replicate the issue.  

I'm a .NET programmer so I have replicated the problem with ActiveMQ NMS similar to how the patch does.  So forgive me if there are any syntactical errors in the java code.  :(  The logic should be correct though and hopefully we can trigger the error.

If we can trigger it, fix it, and bump this issue to 5.3 that would be great!  :)

Please keep me informed on how it goes.

PS Also note the reporter attached the broker configuration and the test classes he used to trigger this error.



> Acknowledgment of Messages consumed from VirtualTopic consumer queues fails
> ---------------------------------------------------------------------------
>
>                 Key: AMQ-1763
>                 URL: https://issues.apache.org/activemq/browse/AMQ-1763
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0
>         Environment: Windows XP, Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
>            Reporter: Konrad Podloucky
>             Fix For: 5.4.0
>
>         Attachments: test.xml, TestConsumer.java, testPatch.patch, TestProducer.java
>
>
> The Message Broker throws an exception each time a client tries to acknowledge a message consumed from a  VirtualTopic consumer queue:
> ERROR Service                        - Async error occurred: java.lang.IllegalArgumentException: The subscription does not exist: ID:seautpc271-1314-1212495185267-0:0:1:1
> java.lang.IllegalArgumentException: The subscription does not exist: ID:seautpc271-1314-1212495185267-0:0:1:1
>         at org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:357)
>         at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:470)
>         at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
>         at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:73)
>         at org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:73)
>         at org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:84)
>         at org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:443)
>         at org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
>         at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>         at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
>         at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>         at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
>         at org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>         at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>         at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
>         at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
>         at java.lang.Thread.run(Thread.java:619)
> Consequently the message gets re-delivered as soon as the client connects to the queue again (and fails again on aknowledgement). Strangely enough the subscription mentioned in the exception is visible in the JMX console. I can reproduce this error every time I try to consume from VirtualTopic consumer queues.
> I have attached the broker configuration (which is rather minimal) and the test classes I used to trigger this error.

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

 « Return to Thread: [jira] Created: (AMQ-1763) Acknowledgment of Messages consumed from VirtualTopic consumer queues fails