Details
Description
Rapid connect/disconnect can result in dangling stomp transport connection mbeans which eventually accumulate.
Issue occurs when a disconnect occurs before a broker connection has been fully initiated. The delayed stop, pending start completion was bypassed by a shutdown command from the stomp protocol convertor.
One potential symptom, when a client side port wrapps around and is reused for the MBean name. There is a registration failure, with
2011-06-15 12:27:22,860 [eMQ Task-125034] WARN ManagedTransportConnection - Failed to register MBean: org.apache.activemq:BrokerName=xx,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/xx_52170 2011-06-15 12:27:22,860 [eMQ Task-125034] DEBUG ManagedTransportConnection - Failure reason: javax.management.InstanceAlreadyExistsException: org.apache.activemq:BrokerName=xx,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/xx_52170 javax.management.InstanceAlreadyExistsException: org.apache.activemq:BrokerName=xx,Type=Connection,ConnectorName=stomp,ViewType=address,Name=/xx_52170 at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:453) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.internal_addObject(DefaultMBeanServerInterceptor.java:1484) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:963) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:917) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:312) at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:482) at org.apache.activemq.broker.jmx.ManagementContext.registerMBean(ManagementContext.java:299) at org.apache.activemq.broker.jmx.AnnotatedMBean.registerMBean(AnnotatedMBean.java:65) at org.apache.activemq.broker.jmx.ManagedTransportConnection.registerMBean(ManagedTransportConnection.java:99) at org.apache.activemq.broker.jmx.ManagedTransportConnection.<init>(ManagedTransportConnection.java:57) at org.apache.activemq.broker.jmx.ManagedTransportConnector.createConnection(ManagedTransportConnector.java:52) at org.apache.activemq.broker.TransportConnector$1$1.run(TransportConnector.java:216) at java.lang.Thread.run(Thread)