You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Marc Rodrigues (JIRA)" <ji...@apache.org> on 2013/04/10 12:18:15 UTC

[jira] [Created] (AMQNET-425) Dynamic Failover & Apache.NMS.activeMQ 1.5.5 issue

Marc Rodrigues created AMQNET-425:
-------------------------------------

             Summary: Dynamic Failover & Apache.NMS.activeMQ 1.5.5 issue 
                 Key: AMQNET-425
                 URL: https://issues.apache.org/jira/browse/AMQNET-425
             Project: ActiveMQ .Net
          Issue Type: Bug
          Components: NMS
    Affects Versions: 1.5.6, 1.5.5
         Environment: 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

            Reporter: Marc Rodrigues
            Assignee: Jim Gomes
            Priority: Blocker


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>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira