Uploaded image for project: 'ActiveMQ Classic'
  1. ActiveMQ Classic
  2. AMQ-2831

Set ClientID - InvalidClientIDException with http transport

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 5.3.2
    • 5.4.1
    • Transport
    • None

    Description

      I have a client that do a durable subscriptio to a topic.
      It register with a static client id.

      After a connectivity loss (an so a new re-connection), this exception is thrown and connection cannot be
      re-established:

      2010-07-15 13:49:04,700 ERROR - javax.jms.InvalidClientIDException: Broker: localhost - Client: (SchedulerId = '1') already connected from blockingQueue_8461294
      at org.apache.activemq.broker.region.RegionBroker.addConnection(RegionBroker.java:216)
      at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
      at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
      at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:77)
      at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
      at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
      ....

      This is not possible, because is the only client with that name and previos connection was closed . .close().

      If I kill all the clients an I leave active only the broker,
      If I try to reconnect using http (or tcp) I get the same error.
      So client is not de-registered.
      This appens also if I use failover protocol. After client kill/restart. Same exception is raised (javax.jms.InvalidClientIDException - with the clientID of the killed client).

      I have to restart broker in order to register again the client.

      A test case is attached.
      If you connect to http the first time, connection is ok.
      If you kill the JVM and the try to restart the test case, 'myclid already connected from blockingQueue_' is always raised. Also after some hours. I have to restart the broker in order to have a new conection with that client id.

      This test simulate a JVM crash with no resource cleanup.

      Attachments

        1. broker-config.xml
          4 kB
          Colombo Marco
        2. TestVaseClientID.zip
          0.6 kB
          Colombo Marco

        Issue Links

          Activity

            People

              gtully Gary Tully
              rjtokenlanring Colombo Marco
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: