Uploaded image for project: 'AMQ Broker'
  1. AMQ Broker
  2. ENTMQBR-3111

AMQ broker does not clean the connection(MQTT) when the connection is broken

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • AMQ 7.4.2.GA
    • AMQ 7.4.0.CR2, AMQ 7.4.1
    • mqtt-protocol
    • Release Notes
    • +
    • Previously, when an MQTT client dropped its connection to the broker without properly closing it, the broker did not close the underlying physical connection. This issue is now resolved.
    • Documented as Resolved Issue
    • Verified in a release
    • Hide

      1. using connectionsAllowed
      <acceptor name="artemis">tcp://0.0.0.0:52201?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;connectionsAllowed=1</acceptor>
      2.run Mqtt_Callback or Mqtt_Blocking of the attached project(MQTT_fuse)
      3.using another jms client to connect the broker.

      Show
      1. using connectionsAllowed <acceptor name="artemis">tcp://0.0.0.0:52201?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;connectionsAllowed=1</acceptor> 2.run Mqtt_Callback or Mqtt_Blocking of the attached project(MQTT_fuse) 3.using another jms client to connect the broker.

      When connect AMQ broker using the Fusesource MQTT 1.14 client. If we have a misbehaving client, such as the connection was not closed, then the connections can not be cleared by the broker.

      <connection-ttl-override>30000</connection-ttl-override>
      <connection-ttl-check-interval>1000</connection-ttl-check-interval>
      ......
      <acceptor name="artemis">tcp://0.0.0.0:52201?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;connectionsAllowed=1</acceptor>
      

      When the misbehaving mqtt client conenct to the broker, then other connections can not connection to the broker untill restart the acceptor.
      In addition, using <connection-ttl-override> and <connection-ttl-check-interval> the connection is still not clear.

              gaohoward Howard Gao
              dbruscin Domenico Francesco Bruscino
              Tiago Bueno Tiago Bueno
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: