Uploaded image for project: 'ActiveMQ .Net'
  1. ActiveMQ .Net
  2. AMQNET-425

Add support for updateClusterClients to Failover Transport

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.5.5, 1.5.6
    • 1.6.0
    • NMS
    • None
    • We have developed a NET4.0 application (Producer & Consumer) using:
      -Apache.NMS 1.5.0
      -Apache.NMS.activeMQ 1.5.5
      vmware vsphere 4.1

      -CentOS 6 32bits (AQsrv1 & AQsrv2)
      -JRE6
      -Fuse Message Broker v5.5.1

    Description

      Hello,

      The NMS failover client does not yet support the updateClusterClients options, so it won't respond to the list of brokers provided by the server.

      The workaround is to provide the static list or use some other discovery mechanism like multicast.

      Issue reported via forum :
      Our goal is to use a network of brokers with failover and dynamic discovery (production environment will have around 100 brokers).

      So we have configured 2 CentOS virtual machine for test:

      vmware vsphere 4.1

      -CentOS 6 32bits (AQsrv1 & AQsrv2)
      -JRE6
      -Fuse Message Broker v5.5.1 (see activemq.xml configuration at the end)

      We have developed a NET4.0 application (Producer & Consumer) using:
      -Apache.NMS 1.5.0
      -Apache.NMS.activeMQ 1.5.5

      If I use the following URI to connect: activemq:failover://(tcp://AQsrv1:61616,tcp://AQsrv2:61616)?transport.randomize=true&transport.startupMaxReconnectAttempts=0&transport.timeout=2000&nms.AsyncSend=true
      -> when I stop the activeMQ process on AQsrv1: the failover works fine and application continue to send/consume messages on AQsrv2.

      Now If I use the following URI:
      activemq:failover://(tcp://AQsrv1:61616)?transport.randomize=true&transport.startupMaxReconnectAttempts=0&transport.timeout=2000&nms.AsyncSend=true
      -> when I stop the activeMQ process on AQsrv1: the failover seems to not work anymore and my application is not able to connect to AQsrv2 automatically.

      As I'm supposed to received a list of brokers (so AQsrv2) from AQsrv1

      activemq.xml on both servers

      <networkConnectors>
      <networkConnector
      name="ncelab-activeMQ"
      uri="multicast://default?group=ncelab"
      dynamicOnly="true"
      networkTTL="2"
      duplex="true"
      prefetchSize="1"
      decreaseNetworkConsumerPriority="false" />
      </networkConnectors>

      <persistenceAdapter>
      <kahaDB directory="${activemq.data}/kahadb"/>
      </persistenceAdapter>

      <transportConnectors>
      <transportConnector name="openwire"
      uri="tcp://0.0.0.0:61616"
      discoveryUri="multicast://default?group=ncelab"
      enableStatusMonitor="true"
      rebalanceClusterClients="true"
      updateClusterClients="true"
      updateClusterClientsOnRemove="true" />
      </transportConnectors>

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            tarpio Marc Rodrigues
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: