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