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 $ONEDB_HOME/etc/sqlhosts on a specific host, set the host's ONEDB_ SQLHOSTS 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
    {
       ONEDB_SERVER 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
    {
       ONEDB_SERVER 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.