Hi, (Yes, I know this version is ancient but it's still in use around here. We're in the process of upgrading to 5.8.0).
Per the doc it states that it's a requirement for STOMP clients that want to create durable topic subscription to ensure that the client-id and subscription name match. What's not clear from the documentation are the consequences when they don't! Failure to match does not appear to prevent either subscribing or receiving messages. What it does prevent, however, is being able to unsubscribe later on. When the subscriber tries to unsubscribe ActiveMQ rejects the attempt with the error message "no durable subscription exists for: XXX". Using JMX to delete the subscription, via JConsole, or the web console (where JMX is enabled for both local and remote access), gives the same error. I verified this behavior by using telnet to connect to the broker's STOMP port then issuing the following sequence of STOMP commands (as taken from the STOMP based unit tests in the ActiveMQ source code): CONNECT/SUBSCRIBE/DISCONNECT then CONNECT/UNSUBSCRIBE/DISCONNECT. Note: in ActiveMQ 5.8.0 I get the same error (for a non-matching durable subscription) when running the same STOMP commands via telnet (no surprise). However, I can delete the subscription via the web console. Once created in 5.3.1, how can this type of durable topic subscription (where the client-id and subscription name don't match) be removed? Thanks, Paul ======================================================================= <beans xmlns="http://www.springframework.org/schema/beans" xmlns:amq="http://activemq.apache.org/schema/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core-5.3.1.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:${activemq.base}/conf/credentials.properties</value> </property> </bean> <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data" advisorySupport="false" useJmx="true"> <managementContext> <managementContext createConnector="false"/> </managementContext> <plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="system" password="manager" groups="users,admins"/> </users> </simpleAuthenticationPlugin> </plugins> <persistenceAdapter> <amqPersistenceAdapter syncOnWrite="false" directory="${activemq.base}/data"/> </persistenceAdapter> <systemUsage> <systemUsage> <memoryUsage> <memoryUsage limit="20 mb"/> </memoryUsage> </systemUsage> </systemUsage> <transportConnectors> <transportConnector name="stomp" uri="stomp:// 0.0.0.0:61613?transport.closeAsync=false&trace=true"/> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> </transportConnectors> </broker> <import resource="jetty.xml"/> </beans>