Affects Version/s: 5.5.1-fuse-02-02
Similar Issues:Show 10 results
MB-788 CheckConnection call should use same timeout as SyncRequest MB-673 ActiveMQMessageConsumer incorrectly regards replayed message as a duplicate, logging 'ignoring (auto acking) duplicate', when failover: transport is used. MB-855 Number of established STOMP connections constantly increasing MB-822 Please clean up log messages when connecting to the broker using STOMP client with a wrong name/password pair. MB-23 One blocked sync sender on a connection will not block another sync sender on the same connection. MB-560 Calling purge on a large queue causes OutOfMemoryError in the broker. MB-223 Allow for use of a connect timeout property when creating socket MB-1266 SessionPool of activemq-pool needs to destroy connection object if it failed to start() the connection. MB-70 org.apache.activemq.broker.TransportConnection::stop should not attempt to send a message over the connection. MB-233 Network of brokers does not work via http
External Issue URL:
Calling ActiveMQConnection.setClientID() twice currently raises an IllegalStateException:
This successfully prevents from overriding clientID on an already started connection.
However in the case of using a Camel JMS endpoint with durable subscriptions, transactions and configuring for a PooledConnectionFactory, this current behavior causes problems.
Due to the durable sub a clientID needs to be set on the connection. This happens at startup of the JMS consumer by calling ActiveMQConnection.setClientID().
If you stop the Camel route, the connection will be released back to the pool with the clientID remaining.
If you restart the Camel route, it will setup a new Spring DMLC and reinitialize the connection with the configured clientId. A new connection is obtained from the pool and setClientID() is invoked on that connection. This will raise the above Exception.
If we try to set the same clientID on the PooledConnection again, we should simply ignore the call rather than raising an exception.This allows the camel-jms consumer to be restarted.
Without a fix, its impossible restart a Camel route that uses camel-jms with durable subscriptions and the PooledConnectionFactory.