You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Podloucky Konrad <k....@schrack.com> on 2008/04/29 15:00:01 UTC

VirtualTopics and Message Acknowledgment

Hi all,

I have been trying to get Virtual Topics to work (great replacement for durable subscribers, btw) but I keep running into the same problem:
* ActiveMQ Release 5.0.0 (also tried 5.1.0 RC4, built on Apr. 23)
* pyactivemq 0.0.3pre1 (Python wrapper around CMS)
* producer and consumer connected to the same broker, no other brokers are involved in any way.

Producer sends message to Virtual Topic "VirtualTopic.schrack", consumer receives message from "Consumer.host1.VirtualTopic.schrack" and acknowledges it.
Now the broker (not the consumer) throws an exception and the message does not get removed from the queue:

ERROR Service                        - Async error occurred: java.lang.IllegalAr
gumentException: The subscription does not exist: 51e1b036-78a5-48a8-8446-8eae06
1f9dbf:1:1
java.lang.IllegalArgumentException: The subscription does not exist: 51e1b036-78
a5-48a8-8446-8eae061f9dbf:1:1
        at org.apache.activemq.broker.region.AbstractRegion.acknowledge(Abstract
Region.java:352)
        at org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBrok
er.java:470)
        at org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionB
roker.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(MutableBro
kerFilter.java:84)
        at org.apache.activemq.broker.TransportConnection.processMessageAck(Tran
sportConnection.java:443)
        at org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
        at org.apache.activemq.broker.TransportConnection.service(TransportConne
ction.java:292)
        at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportC
onnection.java:180)
        at org.apache.activemq.transport.TransportFilter.onCommand(TransportFilt
er.java:68)

Both CLIENT_ACKNOWLEDGE and AUTO_ACKNOWLEDGE result in the same error. Interestingly I can see the supposedly non-existing subscription via JMX.
Anyone seen this behavior before?

Cheers,
Konrad

Sitz: Wien, FG: Handelsgericht Wien, FN: 189025 d