Defining sqlhosts information for connection management of grids and replicate sets

You must define sqlhosts network-connectivity information for connection management of replicate sets or grids.

About this task

To use a file other than $INFORMIXDIR/etc/sqlhosts on a specific host, set the host's INFORMIXSQLHOSTS environment variable to the alternative file.

Procedure

  1. On the host of each Connection Manager and replication server, create sqlhosts file entries for each replication server.
    For example:
    #dbservername  nettype   hostname   servicename  options
     server_1      onsoctcp  host_1     port_1
     server_2      onsoctcp  host_2     port_2
     server_3      onsoctcp  host_3     port_3
     server_4      onsoctcp  host_4     port_4
    
  2. On the host of each Connection Manager and replication server, create a sqlhosts file group entry for each replication server. Add group options to each replication-server entry. Use the i=unique_number group-entry option to assign an identifier to the group for Enterprise Replication. Use the e=last_member group-entry option so that the entire sqlhosts is not scanned for group members.
    For example:
    #dbservername  nettype   hostname   servicename  options
     g_server_1    group     -          -            i=1,e=server_1
     server_1      onsoctcp  host_1     port_1       g=g_server_1
    
     g_server_2    group     -          -            i=2,e=server_2
     server_2      onsoctcp  host_2     port_2       g=g_server_2
    
     g_server_3    group     -          -            i=3,e=server_3
     server_3      onsoctcp  host_3     port_3       g=g_server_3
    
     g_server_4    group     -          -            i=4,e=server_4
     server_4      onsoctcp  host_4     port_4       g=g_server_4
    
  3. On the host of each client application, create an sqlhosts file entry for each service-level agreement (SLA) in each Connection Manager configuration file.
    The first Connection Manager's configuration file has the following entries:
    NAME connection_manager_1
    
    REPLSET my_replset
    {
       INFORMIXSERVER g_server_1,g_server_2,g_server_3,g_server_4
       SLA sla_1 DBSERVERS=ANY
    }
    The second Connection Manager's configuration file has the following entries:
    NAME connection_manager_2
    
    REPLSET my_replset
    {
       INFORMIXSERVER g_server_1,g_server_2,g_server_3,g_server_4
       SLA sla_2 DBSERVERS=ANY
    }
    Add the following entries to each client application's host sqlhosts file:
    #dbservername  nettype   hostname   servicename  options
     sla_1         onsoctcp  cm_host_1  cm_port_1
     sla_2         onsoctcp  cm_host_2  cm_port_2
    
  4. On the host of each client application, create sqlhosts file group entries for each group of SLA entries, and add group options to the SLA entries. Use the c=1 group-entry option, so that connection-attempt starting points in the list of group members is random. Use the e=last_member group-entry option so that the entire sqlhosts is not scanned for group members.
    For example:
    #dbservername  nettype   hostname   servicename  options
     g_sla         onsoctcp  -          -             c=1,e=sla_2
     sla_1         onsoctcp  cm_host_1  cm_port_1     g=g_sla
     sla_2         onsoctcp  cm_host_2  cm_port_2     g=g_sla
    

Results

Client connection requests to @g_sla are directed to one of the Connection Managers. If connection_manager_1 receives the request, it uses sla_1 to provide the client application with connection information for the primary server. If connection_manager_2 receives the request, it uses sla_2 to provide the client application with connection information for a replication server.