I would like some clarification of the precise intended semantics
of the SUBSCRIBE and UNSUBSCRIBE STOMP commands in ActiveMQ.

I hope this is the right mailing list.

I'm particularly interested in the persistent:true cases.

The user-manual[1] says that the SUBSCRIBE id:/persistent:true creates
or reattaches to the durable topic subscription (queue).  When this is a
create I understand this.  When this is a reattach, the case I am
interested in is when the topic differs from that on the
previous/current durable topic subscription.

If the topic is NOT the same, is it really true that all other
subscribers will see only the new topic messages from then on?

The spec:
----8<----
If the second connection uses a different destination or selector header,
then updates the original subscription, and the original connection will
subsequently only receive messages matching the updated destination or
selector.
----8<----

In the case of an UNSUBSCRIBE id:/persistent:true command I want to
know what happens to other (active) durable subscriptions to that id.

Destroying the durable topic subscription seems to imply that the other
subscribers will stop receiving messages for that topic.

The spec:
----8<----
To destroy a durable subscription, you must once again add persistent:true
header to the UNSUBSCRIBE frame.
----8<----
This seems a little surprising behaviour for another client, who may
have durably subscribed to a topic and suddenly not receive anything at
all.

Can you please clarify what is supposed to happen?

Regards,
Steve Powell
[M: +44-7815-838-558; H:+44-1962-775-598]
Links: SpringSource (a division of VMware), Virgo, RabbitMQ.
[1] http://activemq.apache.org/apollo/documentation/user-manual.html

Reply via email to