The ClusterConnectionControl will get the topology from the
ClusterConnection that will get activated only after the server is
activated (start method called).

As a result this method is only available at the running server.

I'm not sure we could modify this semantic easily, but it but it would be a
JIRA/feature.  There could be added a backupController returning the live
node or any other controls available for the backup node maybe?

On Tue, Sep 15, 2015 at 8:33 AM, Jeff Mesnil <[email protected]> wrote:

> Hi, I'm writing some failover tests for Artemis (using either shared
> store or replication).
>
> I have 2 nodes, a master and a backup one.
>
> In the replication cases, I start my nodes and want to wait for the
> cluster to be formed.
>
> In the logs, I can see that the cluster is formed, as the backup has this
> log:
>
> "11:36:39,768 INFO  [org.apache.activemq.artemis.core.server]
> (Thread-1 (ActiveMQ-client-netty-threads-1591310642)) AMQ221024:
> Backup server
> ActiveMQServerImpl::serverUUID=e7bd42ca-5b8b-11e5-9d19-796a17bef145
> is synchronized with live-server."
>
> However, if I look at ClusterConnectionControl#getNodes() on either
> nodes, it returns an empty map. I was expecting to have both nodes
> returned. Or maybe the other node at the end of the cluster
> connection. Returning an empty map sounds suspicious.
>
> If I now call ClusterConnectionControl#getTopology() on the master
> node, it returns:
>
> "topology on Topology@1aaa7bfa[owner=ClusterConnectionImpl@764259437
> [nodeUUID=e7bd42ca-5b8b-11e5-9d19-796a17bef145,
> connector=TransportConfiguration(name=http-connector,
>
> factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)
>
> ?host=localhost&http-upgrade-endpoint=http-acceptor&httpUpgradeEnabled=true&port=8080,
> address=jms,
> server=ActiveMQServerImpl::serverUUID=e7bd42ca-5b8b-11e5-9d19-796a17bef145]]:
>         e7bd42ca-5b8b-11e5-9d19-796a17bef145 => TopologyMember[id =
> e7bd42ca-5b8b-11e5-9d19-796a17bef145,
> connector=Pair[a=TransportConfiguration(name=http-connector,
>
> factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)
>
> ?host=localhost&http-upgrade-endpoint=http-acceptor&httpUpgradeEnabled=true&port=8080,
> b=TransportConfiguration(name=http-connector,
>
> factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)
>
> ?httpUpgradeEnabled=true&port=8180&host=localhost&http-upgrade-endpoint=http-acceptor],
> backupGroupName=null, scaleDownGroupName=null]
>         nodes=2 members=1"
>
> The string is a bit opaque but I can at least see that there are 2
> nodes in the cluster. Both nodes form a pair for the single member
> identified with e7bd42ca-5b8b-11e5-9d19-796a17bef145
>
> What's the correct way to know the number of nodes in the cluster?
> Finally, is there a way to query the live server to know if it has one
> or many backups ready to failover? Relying on the topology string
> seems quite fragile...
>
> thanks,
> jeff
>
> --
> Jeff Mesnil
> [email protected]
> http://jmesnil.net/weblog/
>



-- 
Clebert Suconic

Reply via email to