Connection Managers support Distributed
Relational Database Architecture™ (DRDA®)
connections for high-availability clusters. You must define sqlhosts network-connectivity
information for connection management of high-availability clusters
that use DRDA.
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
- On the host of each Connection Manager and database server,
create sqlhosts file entries for each database
server in the cluster.
For example:
#dbservername nettype hostname servicename options
server_1 onsoctcp host_1 port_1
server_2 onsoctcp host_3 port_2
server_3 onsoctcp host_5 port_3
- In each database server's onconfig file,
set the DBSERVERALIASES parameter to specify an alias for the server.
The
onconfig file entry for
server_1:
DBSERVERALIASES drda_1
The
onconfig file
entry for
server_2:
DBSERVERALIASES drda_2
The
onconfig file
entry for
server_3:
DBSERVERALIASES drda_3
- On the host of each Connection Manager, add entries for
the DRDA aliases. Use a DRDA protocol for the
nettype
value.
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
drda_1 drsoctcp host_1 port_4
drda_2 drsoctcp host_2 port_5
drda_3 drsoctcp host_3 port_6
- On the host of each Connection Manager, add a group entry
for the group of database server and add a group entry for the group
of DRDA aliases. Add group
options to the database server and DRDA alias
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
my_servers group - - c=1,e=server_3
server_1 onsoctcp host_1 port_1 g=my_servers
server_2 onsoctcp host_2 port_2 g=my_servers
server_3 onsoctcp host_3 port_3 g=my_servers
drda_aliases group - - c=1,e=drda_3
drda_1 drsoctcp host_1 port_4 g=drda_aliases
drda_2 drsoctcp host_2 port_5 g=drda_aliases
drda_3 drsoctcp host_3 port_6 g=drda_aliases
- 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
CLUSTER my_cluster
{
ONEDB_SERVER my_servers
SLA sla_primary_1 DBSERVERS=PRI
SLA sla_primary_drda_1 DBSERVERS=PRI
SLA sla_secondaries_1 DBSERVERS=SDS,HDR
SLA sla_secondaries_drda_1 DBSERVERS=SDS,HDR
FOC ORDER=ENABLED \
PRIORITY=1
}
The second Connection Manager's configuration file has the following entries:
NAME connection_manager_2
CLUSTER my_cluster
{
ONEDB_SERVER my_servers
SLA sla_primary_2 DBSERVERS=PRI
SLA sla_primary_drda_2 DBSERVERS=PRI
SLA sla_secondaries_2 DBSERVERS=SDS,HDR
SLA sla_secondaries_drda_2 DBSERVERS=SDS,HDR
FOC ORDER=ENABLED \
PRIORITY=2
}
Add the following entries to each client application's
host
sqlhosts file:
#dbservername nettype hostname servicename options
sla_primary_1 onsoctcp cm_host_1 cm_port_1
sla_primary_2 onsoctcp cm_host_2 cm_port_2
sla_secondaries_2 onsoctcp cm_host_1 cm_port_3
sla_secondaries_2 onsoctcp cm_host_2 cm_port_4
sla_primary_1_drda drsoctcp cm_host_1 cm_port_5
sla_primary_2_drda drsoctcp cm_host_2 cm_port_6
sla_secondaries_2_drda drsoctcp cm_host_1 cm_port_7
sla_secondaries_2_drda drsoctcp cm_host_2 cm_port_8
- 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.#dbservername nettype hostname servicename options
g_primary group - - c=1,e=sla_primary_2
sla_primary_1 onsoctcp cm_host_1 cm_port_1 g=g_primary
sla_primary_2 onsoctcp cm_host_2 cm_port_2 g=g_primary
g_secondaries group - - c=1,e=sla_secondaries_2
sla_secondaries_2 onsoctcp cm_host_1 cm_port_3 g=g_secondaries
sla_secondaries_2 onsoctcp cm_host_2 cm_port_4 g=g_secondaries
g_primary_drda group - - c=1,e=sla_primary_2_drda
sla_primary_1_drda drsoctcp cm_host_1 cm_port_5 g=g_primary_drda
sla_primary_2_drda drsoctcp cm_host_2 cm_port_6 g=g_primary_drda
g_secondaries_drda group - - c=1,e=sla_secondaries_2_drda
sla_secondaries_2_drda drsoctcp cm_host_1 cm_port_7 g=g_secondaries_drda
sla_secondaries_2_drda drsoctcp cm_host_2 cm_port_8 g=g_secondaries_drda
Results
Client connection requests to @g_primary_drda are sent
by drsoctcp protocol to one of the Connection Managers. If connection_manager_1 receives
the request, it uses sla_primary_1_drda to provide the client
application with connection information for the primary server. If connection_manager_2 receives
the request, it uses sla_primary_2_drda to provide the client
application with connection information for the primary server.