I'm struggling to create set-up as mentioned in the subject on ActiveMQ Artemis 
2.5.0. My key configuration looks as follows (for first node of three):

<acceptors>
    <acceptor 
name="node-1-universal-plain">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300</acceptor>
</acceptors>

<connectors>
    <connector name="node-1-connector">tcp://localhost:61616</connector>
    <connector name="node-2-connector">tcp://localhost:62616</connector>
    <connector name="node-3-connector">tcp://localhost:63616</connector>
</connectors>

<cluster-connections>
    <cluster-connection name="showcase-cluster">
        <connector-ref>node-1-connector</connector-ref>
        <retry-interval>500</retry-interval>
        <use-duplicate-detection>true</use-duplicate-detection>
        <message-load-balancing>ON_DEMAND</message-load-balancing>
        <max-hops>1</max-hops>
        <static-connectors>
            <connector-ref>node-2-connector</connector-ref>
            <connector-ref>node-3-connector</connector-ref>
        </static-connectors>
    </cluster-connection>
</cluster-connections>

<ha-policy>
    <replication>
        <colocated>
            <backup-port-offset>7</backup-port-offset>
            <request-backup>true</request-backup>
            <max-backups>2</max-backups>
            <backup-request-retries>-1</backup-request-retries>
            <backup-request-retry-interval>2000</backup-request-retry-interval>
            <master />
            <slave />
        </colocated>
    </replication>
</ha-policy>

Rest of nodes has similar configuration - adjusted cluster connections and 
acceptors. I'm deploying it also on three separate hosts (each different from 
localhost). What is important I have no discovery groups (no possibility to use 
UDP).

So my test is connecting to a cluster using ActiveMQConnectionFactory and URI 
"(tcp://node-1:61616,tcp://node-2:62616)?ha=true&reconnectAttempts=-1" (leaving 
third to be obtained directly from a cluster) and one thread is producing and 
second consuming messages (separate connection used). Test is working fine 
(unsurprisingly) even when producer is connected to different nodes of the 
cluster. But when one node is stopped then producer / consumer connected to 
that node is affected - no send / receive is performed but some messages on the 
client side is buffered and flushed when node is again available. I would 
expect to automagically switch connection to another node but it is not 
happening here. I have tried that previously without HA but with the same 
result.

Could you help me determine what I'm doing wrong?

Kind regards
Marcin Stefaniuk
CREDIT SUISSE (POLAND) SP. Z O.O
Solution Architect | Messaging Engineering Warsaw, MITM 47
Atrium 2 | 00-849 Warsaw | Poland
marcin.stefan...@credit-suisse.com<mailto:marcin.stefan...@credit-suisse.com> | 
www.credit-suisse.com<http://www.credit-suisse.com/>

=============================================================================== 
Please access the attached hyperlink for an important electronic communications 
disclaimer: 
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html 
=============================================================================== 

Reply via email to