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

Network of brokers on duplex mode reports InstanceAlreadyExistsException on already existing destinations

    XMLWordPrintableJSON

Details

    • Patch Available

    Description

      When using a network of brokers apparently on duplex with destinations which were already created on each MBeanBridgeDestination.onOutboundMessage() and MBeanBridgeDestination.onInboundMessage() the bridge tries to register the MBean of a destination which has already been created.

      Here is a discussion that started but a ticket was not created.
      http://activemq.2283324.n4.nabble.com/Broker-log-full-of-Failed-to-register-queue-messages-td4685241.html

      Although this does not seem to impact the functionality of the application it creates a massive amount of logs as this message repeats for every received message.

      This are the important bits of my activeMQ configuration:

             <networkConnectors>
                  <networkConnector name="mailSystemConnector" uri="multicast://default" conduitSubscriptions="true" duplex="true" >
                      <dynamicallyIncludedDestinations>
                          <queue physicalName="mailsystem.templateprocessor"/>
                          <queue physicalName="DLQ.mailsystem.templateprocessor"/>
                      </dynamicallyIncludedDestinations>
                  </networkConnector>
              </networkConnectors>
      
              <destinations>
                  <queue physicalName="SCE"/>
                  <queue physicalName="mailsystem.templateprocessor"/>
                  <queue physicalName="ActiveMQ.DLQ"/>
              </destinations>
      
              <managementContext>
                  <managementContext createConnector="true"
                                     connectorPort="1091"
                                     jmxDomainName="org.apache.activemq"/>
              </managementContext>
      
      
              <!-- The transport connectors ActiveMQ will listen to -->
              <transportConnectors>
                  <transportConnector name="openwire nio" uri="nio://0.0.0.0:61616" updateClusterClients="true"
                                      rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/>
                  <transportConnector name="openwireDiscovery" uri="tcp://0.0.0.0:0"
                                      discoveryUri="multicast://default" updateClusterClients="true"
                                      rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/>
                  <transportConnector name="stomp" uri="stomp://0.0.0.0:61613" updateClusterClients="true"
                                      rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/>
      
              </transportConnectors>
      

      And this is the output log generated:

      2015-11-18 15:43:10,497 [.69:41090@36731] WARN  MBeanBridgeDestination         - Failed to register queue://mailsystem.templateprocessor
      javax.management.InstanceAlreadyExistsException: org.apache.activemq:brokerName=mailsystemBroker,connector=duplexNetworkConnectors,networkConnectorName=#0,networkBridge=tcp_//10.211.2.69_41090,type=Broker,direction=inbound,destinationType=Queue,destinationName=mailsystem.templateprocessor
              at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
              at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
              at org.apache.activemq.broker.jmx.ManagementContext.registerMBean(ManagementContext.java:380)
              at org.apache.activemq.broker.jmx.AnnotatedMBean.registerMBean(AnnotatedMBean.java:72)
              at org.apache.activemq.network.MBeanBridgeDestination.onInboundMessage(MBeanBridgeDestination.java:97)
              at org.apache.activemq.network.MBeanNetworkListener.onInboundMessage(MBeanNetworkListener.java:115)
              at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceInboundMessage(DemandForwardingBridgeSupport.java:1680)
              at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceRemoteCommand(DemandForwardingBridgeSupport.java:649)
              at org.apache.activemq.network.DemandForwardingBridgeSupport$3.onCommand(DemandForwardingBridgeSupport.java:224)
              at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
              at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
              at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
              at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)
              at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
              at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:214)
              at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:196)
              at java.lang.Thread.run(Thread.java:745)
      
      		2015-11-18 15:43:09,634 [Broker] Task-16] WARN  MBeanBridgeDestination         - Failed to register queue://mailsystem.templateprocessor
      javax.management.InstanceAlreadyExistsException: org.apache.activemq:brokerName=mailsystemBroker,connector=networkConnectors,networkConnectorName=mailSystemConnector,networkBridge=tcp_//10.211.2.70_36731,type=Broker,direction=outbound,destinationType=Queue,destinationName=mailsystem.templateprocessor
              at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900)
              at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324)
              at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522)
              at org.apache.activemq.broker.jmx.ManagementContext.registerMBean(ManagementContext.java:380)
              at org.apache.activemq.broker.jmx.AnnotatedMBean.registerMBean(AnnotatedMBean.java:72)
              at org.apache.activemq.network.MBeanBridgeDestination.onOutboundMessage(MBeanBridgeDestination.java:72)
              at org.apache.activemq.network.MBeanNetworkListener.onOutboundMessage(MBeanNetworkListener.java:107)
              at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceOutbound(DemandForwardingBridgeSupport.java:1673)
              at org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:1035)
              at org.apache.activemq.network.DemandForwardingBridgeSupport$2.onCommand(DemandForwardingBridgeSupport.java:206)
              at org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
              at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)
              at org.apache.activemq.transport.vm.VMTransport.doDispatch(VMTransport.java:138)
              at org.apache.activemq.transport.vm.VMTransport.dispatch(VMTransport.java:130)
              at org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:107)
              at org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:68)
              at org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
              at org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:1419)
              at org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:938)
              at org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:984)
              at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:133)
              at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:48)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745)
      

      Attachments

        1. AMQ_6052.patch
          12 kB
          Pablo Lozano
        2. AMQ_6052-2.patch
          17 kB
          Pablo Lozano

        Activity

          People

            gtully Gary Tully
            Altaflux Pablo Lozano
            Votes:
            0 Vote for this issue
            Watchers:
            9 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: