Archived

This forum has been archived. Please start a new discussion on GitHub.

Registry Replication issue

Dear Experts,

I have configured deployment of IceStorm service through IceGrid with Registry replication.

Unfortunately, it seems that I am not able to see replication of registry despite each node (except the one running Master) logging
-- 08/23/13 13:15:15.006 icegridnode: Replica: established session with replica `Master'

I am running three IceGrid nodes each hosting registry replica.

These are corresponding grid config snippets, with each config having the same Default.Locator entry:
Ice.Default.Locator=BelvedereIceGrid/Locator:default -h 192.168.161.77 -p 14061:default -h 192.168.161.24 -p 14061:default -h 192.168.161.25 -p 14061
config.grid1

IceGrid.Registry.Client.Endpoints=default -h 192.168.161.77 -p 14061
IceGrid.Registry.Server.Endpoints=default -h 192.168.161.77
IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.77

IceGrid.Node.CollocateRegistry=1

config.grid2

IceGrid.Registry.Client.Endpoints=default -h 192.168.161.77 -p 14061
IceGrid.Registry.Server.Endpoints=default -h 192.168.161.24
IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.24
IceGrid.Registry.ReplicaName=Replica2

IceGrid.Node.CollocateRegistry=0
config.grid3

IceGrid.Registry.Client.Endpoints=default -h 192.168.161.77 -p 14061
IceGrid.Registry.Server.Endpoints=default -h 192.168.161.25
IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.25
IceGrid.Registry.ReplicaName=Replica3

IceGrid.Node.CollocateRegistry=0

IceStorm persistence seems to work fine for existing connections but not for the new ones.

When the most simple subscriber tries to establish connection when master node/registry are down. It shows a connection error to other Locator replicas (192.168.161.24/25), e.g.:
-- 08/26/13 11:32:39.966 ./publisher: Locator: searching for object by id
   object = BelvedereIceStorm/TopicManager
-- 08/26/13 11:32:39.967 ./publisher: Network: trying to establish tcp connection to [B]191.168.161.25:14061[/B]
-- 08/26/13 11:32:39.967 ./publisher: Network: failed to establish tcp connection
   local address: 10.10.161.29:39248
   remote address: 191.168.161.25:14061
   Network.cpp:1998: Ice::ConnectionRefusedException:
   connection refused: Connection refused
-- 08/26/13 11:32:39.967 ./publisher: Network: trying to establish tcp connection to [B]192.168.161.77:14061[/B]
-- 08/26/13 11:32:39.967 ./publisher: Network: failed to establish tcp connection
   local address: 10.10.161.29:56221
   remote address: 192.168.161.77:14061
   Network.cpp:1998: Ice::ConnectionRefusedException:
   connection refused: Connection refused
-- 08/26/13 11:32:39.967 ./publisher: Network: trying to establish tcp connection to [B]192.168.161.24:14061[/B]
-- 08/26/13 11:32:39.968 ./publisher: Network: failed to establish tcp connection
   local address: 10.10.161.29:40658
   remote address: 192.168.161.24:14061
   Network.cpp:1998: Ice::ConnectionRefusedException:
   connection refused: Connection refused


Did I miss anything in the configuration?

Thank you,
Aleksey

Comments

  • benoit
    benoit Rennes, France
    Hi Aleksey,

    Your configuration is a bit confusing. If you want to run the registry service with the icegridnode executable, you need to enable registry collocation for all the nodes. In your configuration you only enable it in config.grid1.

    The IceGrid.Registry.Client.Endpoints are also all identical in the three configuration files which is wrong. Most likely the following would be more correct if you want to run the 3 registry services collocated with the icegridnode executable:
    config.grid1
    
    IceGrid.Registry.Client.Endpoints=default -h 192.168.161.77 -p 14061
    IceGrid.Registry.Server.Endpoints=default -h 192.168.161.77
    IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.77
    
    IceGrid.Node.CollocateRegistry=1
    
    config.grid2
    
    IceGrid.Registry.Client.Endpoints=default -h 192.168.161.24 -p 14061
    IceGrid.Registry.Server.Endpoints=default -h 192.168.161.24
    IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.24
    IceGrid.Registry.ReplicaName=Replica2
    
    IceGrid.Node.CollocateRegistry=1
    
    config.grid3
    
    IceGrid.Registry.Client.Endpoints=default -h 192.168.161.25 -p 14061
    IceGrid.Registry.Server.Endpoints=default -h 192.168.161.25
    IceGrid.Registry.Internal.Endpoints=default -h 192.168.161.25
    IceGrid.Registry.ReplicaName=Replica3
    
    IceGrid.Node.CollocateRegistry=1
    

    For a configuration example using IceGrid replication, I recommend checking out the demo/IceGrid/replication demo in your Ice demo distribution.

    Cheers,
    Benoit.
  • Dear Benoit,

    thank you for a very fast response!

    This fixed the issue.

    Thank you,
    Aleksey