You must define sqlhosts network-connectivity
information for connection management of server sets.
About this task
The Connection Manager's sqlhosts file
must contain entries for all database servers that it connects to.
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
- On the host of each Connection Manager and database server,
create sqlhosts file entries for each database
server.
For example:
#dbservername nettype hostname servicename options
standalone_1 onsoctcp host_1 port_1
standalone_2 onsoctcp host_2 port_2
standalone_3 onsoctcp host_3 port_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
MACRO servers=standalone_1,standalone_2,standalone_3
SERVERSET ${servers}
{
ONEDB_SERVER ${servers}
SLA sla_1a DBSERVERS=standalone_1
SLA sla_2a DBSERVERS=standalone_2
SLA sla_3a DBSERVERS=standalone_3
}
The second Connection Manager's configuration
file has the following entries:
NAME connection_manager_2
MACRO servers=standalone_1,standalone_2,standalone_3
SERVERSET ${servers}
{
ONEDB_SERVER ${servers}
SLA sla_1b DBSERVERS=standalone_1
SLA sla_2b DBSERVERS=standalone_2
SLA sla_3b DBSERVERS=standalone_3
}
Add the following entries to each client application's
host
sqlhosts file:
#dbservername nettype hostname servicename options
sla_1a onsoctcp cm_host_1 cm_port_1
sla_1b onsoctcp cm_host_2 cm_port_2
sla_2a onsoctcp cm_host_1 cm_port_3
sla_2b onsoctcp cm_host_2 cm_port_4
sla_3a onsoctcp cm_host_1 cm_port_5
sla_3b onsoctcp cm_host_2 cm_port_6
- 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
sla_1 group - - c=1,e=sla_1b
sla_1a onsoctcp cm_host_1 cm_port_1 g=sla_1
sla_1b onsoctcp cm_host_2 cm_port_2 g=sla_1
sla_2 group - - c=1,e=sla_2b
sla_2a onsoctcp cm_host_1 cm_port_3 g=sla_2
sla_2b onsoctcp cm_host_2 cm_port_4 g=sla_2
sla_3 group - - c=1,e=sla_3b
sla_3a onsoctcp cm_host_1 cm_port_5 g=sla_3
sla_3b onsoctcp cm_host_2 cm_port_6 g=sla_3
Results
Client connection requests to @sla_1 are directed to
one of the Connection Managers. If connection_manager_1 receives
the request, it uses sla_1a to provide the client application
with connection information for the primary server. If connection_manager_2 receives
the request, it uses sla_1b to provide the client application
with connection information for a replication server.