Table of Contents Previous Next PDF


TMA/SNA High Availability

TMA/SNA High Availability
TMA SNA supports full high availability connection between Oracle Tuxedo and CICS, with no single point failure. Both bidirectional load balancing and bidirectional failover are supported.
This chapter discusses the following topics:
Outbound Call (from Oracle Tuxedo to CICS)
TMA SNA supports two types of outbound call infrastructures:
The term connection is used for the TCP connection between GWSNAX and CRM, and the term link is used for the SNA connection between CRM and CICS.
Single Connection and Multiple Links
As shown in Figure 9‑1, one Tuxedo client calls a remote service, which maps to a CICS DPL program. The DPL program runs in two CICS regions – CICSA and CICSB. Meanwhile, two GWSNAX/CRM pairs are configured to avoid any single point of failure. Each CRM connects to both CICS regions.
Figure 9‑1 Outbound Call (Single Connection and Multiple Links)
In this scenario, the load balancing / failover can be accomplished via following four paths:
toupclt -> SNAX1 -> CRM12205 -> CICSA -> TOUPDPLS
toupclt -> SNAX1 -> CRM12205 -> CICSB -> TOUPDPLS
toupclt -> SNAX2 -> CRM12206 -> CICSA -> TOUPDPLS
toupclt -> SNAX2 -> CRM12206 -> CICSB -> TOUPDPLS
Table 9‑1 lists all the configurations required for making outbound calls of single connection and multiple links.
 
2 groups for 2 GWSNAX servers
2 GWADM/GWSNAX pairs
2 local domains: SNAX1, SNAX2
4 remote domains: CICSA1, CICSB1, CICSA2, CICSB2
2 CRMs: CRM1, CRM2
4 LINKs: CICSA1, CICSB2, CICSA2, CICSB2
2 CONNECTION/SESSION pairs for two LUs
2 CONNECTION/SESSION pairs for two LUs
Configuring UBBCONFIG
In the Tuxedo UBBCONFIG file, configure the following:
1.
Add two GROUP entries:
Listing 9‑1 Add Groups
*GROUPS
SNAX1
LMID=SITE1 GRPNO=10
SNAX2
LMID=SITE1 GRPNO=9
 
2.
Add two GWADM and GWSNAX servers:
Listing 9‑2 Add Servers
*SERVERS
GWADM
SRVGRP=SNAX1 SRVID=9
GWADM
SRVGRP=SNAX2 SRVID=10
 
GWSNAX
SRVGRP=SNAX1 SRVID=12
RQADDR="SNAX1"
REPLYQ=N RESTART=N GRACE=0
CLOPT="-A -- -t 1"
GWSNAX
SRVGRP=SNAX2 SRVID=13
RQADDR="SNAX2"
REPLYQ=N RESTART=N GRACE=0
CLOPT="-A -- -t 1"
 
Configuring DMCONFIG
In the Tuxedo DMCONFIG file, configure the following:
1.
Listing 9‑3 Add Local Domains
*DM_LOCAL
SNAX1
GWGRP=SNAX1 # same as GWSNAX group in ubbconfig
TYPE=SNAX
DOMAINID="SNAX1"
DMTLOGDEV="/home/wpwang/11TmaTest/sna_scml_ha/SNAX1"
SNAX2
GWGRP=SNAX2
TYPE=SNAX
DOMAINID="SNAX2"
DMTLOGDEV="/home/wpwang/11TmaTest/sna_scml_ha/SNAX2"
 
2.
Listing 9‑4 Add Remote Domains
*DM_REMOTE
CICSA1 TYPE=SNAX DOMAINID="CICSA1"
CICSA2 TYPE=SNAX DOMAINID="CICSA2"
CICSB1 TYPE=SNAX DOMAINID="CICSB1"
CICSB2 TYPE=SNAX DOMAINID="CICSB2"
 
3.
Listing 9‑5 Add CRM
*DM_SNACRM
CRM1
SNACRMADDR="//wasa:12205"
NWDEVICE="/dev/tcp"
LDOM="SNAX1"
CRM2
SNACRMADDR="//wasa:12206"
NWDEVICE="/dev/tcp"
LDOM="SNAX2"
 
4.
Listing 9‑6 Add SNA Stacks
*DM_SNASTACKS
CRMST1
SNACRM="CRM1"
STACKTYPE="VT210"
LOCALLU="CRMLU06" #NETNAME in VTAM CONNECTION definition
LTPNAME="*"
STACKPARMS="wasa"
CRMST2
SNACRM="CRM2"
STACKTYPE="VT210"
LOCALLU="CRMLU07" #NETNAME in VTAM CONNECTION definition
LTPNAME="*"
STACKPARMS="wasa"
 
5.
Listing 9‑7 Add SNA Links
*DM_SNALINKS
DEFAULT:
MODENAME="SMSNA100"
SECURITY="LOCAL"
STARTTYPE="COLD"
MAXSESS=8
MINWIN=4
MAXSYNCLVL=2
CICSA1 STACKREF="CRMST1" LSYSID="CR06" RDOM="CICSA1" RSYSID="CICS" RLUNAME="CICSA"
CICSB1 STACKREF="CRMST1" LSYSID="CR06" RDOM="CICSB1" RSYSID="CICS" RLUNAME="CICSB"
CICSA2 STACKREF="CRMST2" LSYSID="CR07" RDOM="CICSA2" RSYSID="CICS" RLUNAME="CICSA"
CICSB2 STACKREF="CRMST2" LSYSID="CR07" RDOM="CICSB2" RSYSID="CICS" RLUNAME="CICSB"
 
6.
Listing 9‑8 Define Services
*DM_IMPORT
DEFAULT:
RACCESSPOINT=CICSA1
LOAD=50
FUNCTION=DPL
SIMPDPL
LACCESSPOINT=SNAX1
RACCESSPOINT=CICSA1
RNAME="TOUPDPLS"
INBUFTYPE="STRING"
OUTBUFTYPE="STRING"
SIMPDPL
LACCESSPOINT=SNAX1
RACCESSPOINT=CICSA2
RNAME="TOUPDPLS"
INBUFTYPE="STRING"
OUTBUFTYPE="STRING"
SIMPDPL
LACCESSPOINT=SNAX2
RACCESSPOINT=CICSB1
RNAME="TOUPDPLS"
INBUFTYPE="STRING"
OUTBUFTYPE="STRING"
SIMPDPL
LACCESSPOINT=SNAX2
RACCESSPOINT=CICSB2
RNAME="TOUPDPLS"
INBUFTYPE="STRING"
OUTBUFTYPE="STRING"
 
Configuring VTAM List
Define two APPC LUs, for instance, define the LU CRMLU06 and CRMLU07, as shown below:
Listing 9‑9 Define APPC LUs
CRMMN3 VBUILD TYPE=APPL
CRMLU06 APPL ACBNAME=CRMLU06,
APPC=YES,
SYNCLVL=SYNCPT,
AUTH=(ACQ,PASS),
PARSESS=YES
CRMLU07 APPL ACBNAME=CRMLU07,
APPC=YES,
SYNCLVL=SYNCPT,
AUTH=(ACQ,PASS),
PARSESS=YES
 
Configuring Connections
Define two CONNECTION/SESSION pairs for each LU. One CONNECTION/SESSION pair is used to connect to one CICS region. In Listing 9‑10, a CONNECTION/SESSION pair is defined:
Listing 9‑10 Define Connections
ADD GROUP(BEACON1) LIST(BEALST)
DEFINE CONNECTION(CR06) GROUP(BEACON1)
DE(BEA TMA SNA EXAMPLE RDO CONNECTION)
ACCESSMETHOD(VTAM) PROTOCOL(APPC)
NETNAME(CRMLU06)
ATTACHSEC(LOCAL) AUTOCONNECT(NO)
DEFINE SESSION(CR06S) GROUP(BEACON1)
CONNECTION(CR06)
DE(SESSION EXAMPLE)
PROTOCOL(APPC) AUTOCONNECT(YES)
MODENAME(SMSNA100) MAXIMUM(10,5)
DEFINE CONNECTION(CR07) GROUP(BEACON1)
DE(BEA TMA SNA EXAMPLE RDO CONNECTION)
ACCESSMETHOD(VTAM) PROTOCOL(APPC)
NETNAME(CRMLU07)
ATTACHSEC(LOCAL) AUTOCONNECT(NO)
DEFINE SESSION(CR07S) GROUP(BEACON1)
CONNECTION(CR07)
DE(SESSION EXAMPLE)
PROTOCOL(APPC) AUTOCONNECT(YES)
MODENAME(SMSNA100) MAXIMUM(10,5)
 
Note:
Replace the value of GROUP, LIST, CONNECTION, NETNAME, SESSION, MODENAME, and MAXIMUM with your actual value.
Install resource definition in both CICSA and CICSB region, and enter commands to install resource definitions:
CEDA INSTALL GROUP (BEACON1)
Programming for DPLS
1.
Compile the MIRRDPLC program using following JCL:
//COMPIL1 JOB CLASS=2,MSGCLASS=A,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//PROCLIB JCLLIB ORDER=&SYSUID..SNASNT.JCL
//*
// SET CBLDS=&SYSUID..SNASNT.COBOL
// SET LDDS=&SYSUID..SNASNT.LOAD
//*
//STEP1 EXEC DFHYITVL,
// PROG='TOUPDPLS',
// SRCLIB=&CBLDS,
// DSCTLIB=&CBLDS,
// PROGLIB=&LDDS
2.
Define DPL program in both CICSA and CICSB regions:
DEFINE PROGRAM(TOUPDPLS) GROUP(SNASNT)
DESCRIPTION(BEA TMA SNA DPL CLIENT)
LANGUAGE(COBOL) DATALOCATION(ANY)
3.
Install resource definition in both CICSA and CICSB regions:
CEDA INSTALL GROUP (SNASNT)
Multiple Connections and Multiple Links
Unlike the single connection and multiple links, in this scenario, each CRM accepts two connections from GWSNAX in two separate Tuxedo domains. One domain serves as a master, and the other serves as a slave.
CRM supports both multiple connections and multiple links simultaneously.
Notes:
Figure 9‑2 Multiple Connections and Multiple Links
Table 9‑2 lists all the configurations required for making outbound calls of multiple connections and multiple links.
 
2 groups for 2 GWSNAX servers
2 GWADM/GWSNAX pairs
2 local domains: SNAX11, SNAX12
4 remote domains: CICSA1, CICSB1, CICSA2, CICSB2
2 CRMs: CRM1, CRM2
4 LINKs: CICSA1, CICSB2, CICSA2, CICSB2
2 groups for 2 GWSNAX servers
2 GWADM/GWSNAX pairs
2 local domains: SNAX21, SNAX22
4 remote domains: CICSA1, CICSB1, CICSA2, CICSB2
2 CRMs: CRM1, CRM2
4 LINKs: CICSA1, CICSB2, CICSA2, CICSB2
2 CONNECTION/SESSION pairs for two LUs
2 CONNECTION/SESSION pairs for two LUs
The configurations for multiple connections and multiple links are almost same as that of the single connection scenario and won’t be explained again. You can refer to the preceding configuration steps in Single Connection and Multiple Links. There are just some slight differences in the configuration of variables IPCKEY, APPDIR, TUXCONFIG, TLOGDEVICE in UBBCONFIG, and DMTLOGDEV in DMCONFIG.
Inbound Call (from CICS to Oracle Tuxedo)
TMA SNA supports two types of inbound call infrastructures:
The term connection is used for the TCP connection between GWSNAX and CRM, and the term link is used for the SNA connection between CRM and CICS.
Single Connection and Multiple Links
As shown in Figure 9‑3, one CICS transaction links a remote program via DPL call, which maps to an Oracle Tuxedo service. The Tuxedo service is provided by one Tuxedo server and two GWSNAX/CRM pairs are configured to avoid any single point of failure.
Figure 9‑3 Inbound Call (from CICS to Oracle Tuxedo)
The load balancing (round-robin) / failover can be accomplished via following two call paths:
MIRRRDPLC->DYPSAMP -> CRM12205 -> SNAX1 -> mirrsrv
MIRRRDPLC->DYPSAMP -> CRM12206 -> SNAX2 -> mirrsrv
Dynamic routing can be configured in CICS to dispatch the request to two CRMs with load balance and failover automatically, and the default dynamic routing program, DFHDYP, should be customized accordingly.
DFHDYP is a CICS-supplied, user-replaceable program for dynamic routing. For eligible DPL requests, it is invoked before a linked program is executed, to obtain the SYSID of the region where the link should be routed.
Table 9‑3 lists all the configurations required for making inbound calls of single connection and multiple links.
 
2 groups for 2 GWSNAX servers
2 GWADM / GWSNAX pair
2 local domain: SNAX1, SNAX2
2 remote domains: CICSA1, CICSA2
2 CRM: CRM1, CRM2
2 LINK: CICSA1, CICSA2
2 CONNECTION/SESSION pairs for two LUs.
Configuring UBBCONFIG
In the Tuxedo UBBCONFIG file, configure the following:
1.
Add two GROUP entries:
Listing 9‑11 Add Groups
*GROUPS
SNAX1
LMID=SITE1 GRPNO=4
SNAX2
LMID=SITE1 GRPNO=5
 
2.
Add two GWADM and GWSNAX servers:
Listing 9‑12 Add Servers
*SERVERS
GWADM
SRVGRP=SNAX1 SRVID=11
GWADM
SRVGRP=SNAX2 SRVID=12
 
GWSNAX
SRVGRP=SNAX1 SRVID=14
RQADDR="SNAX1"
REPLYQ=N RESTART=N GRACE=0
CLOPT="-A -- -t 1"
GWSNAX
SRVGRP=SNAX2 SRVID=15
RQADDR="SNAX2"
REPLYQ=N RESTART=N GRACE=0
CLOPT="-A -- -t 1"
 
3.
Listing 9‑13 Add Server
*SERVERS
mirrorsrv
SRVGRP=APPGRP SRVID=21 RQADDR="MIRROR" REPLYQ=Y CONV=N LMID=SITE1
 
Configuring DMCONFIG
In the Tuxedo DMCONFIG file, configure the following:
1.
Listing 9‑14 Add Local Domains
*DM_LOCAL
SNAX1
GWGRP=SNAX1 # same as GWSNAX group in ubbconfig
TYPE=SNAX
DOMAINID="SNAX1"
DMTLOGDEV="/home/wpwang/11TmaTest/sna_scml_ha/SNAX1"
SNAX2
GWGRP=SNAX2
TYPE=SNAX
DOMAINID="SNAX2"
DMTLOGDEV="/home/wpwang/11TmaTest/sna_scml_ha/SNAX2"
 
2.
Listing 9‑15 Add Remote Domains
*DM_REMOTE
CICSA1 TYPE=SNAX DOMAINID="CICSA1"
CICSA2 TYPE=SNAX DOMAINID="CICSA2"
 
3.
Listing 9‑16 Add CRM
*DM_SNACRM
CRM1
SNACRMADDR="//wasa:12205"
NWDEVICE="/dev/tcp"
LDOM="SNAX1"
CRM2
SNACRMADDR="//wasa:12206"
NWDEVICE="/dev/tcp"
LDOM="SNAX2"
 
4.
Listing 9‑17 Add SNA Stacks
*DM_SNASTACKS
CRMST1
SNACRM="CRM1"
STACKTYPE="VT210"
LOCALLU="CRMLU08" #NETNAME in VTAM CONNECTION definition
LTPNAME="*"
STACKPARMS="wasa"
CRMST2
SNACRM="CRM2"
STACKTYPE="VT210"
LOCALLU="CRMLU09" #NETNAME in VTAM CONNECTION definition
LTPNAME="*"
STACKPARMS="wasa"
 
5.
Listing 9‑18 Add SNA Links
*DM_SNALINKS
DEFAULT:
MODENAME="SMSNA100"
SECURITY="LOCAL"
STARTTYPE="COLD"
MAXSESS=8
MINWIN=4
MAXSYNCLVL=2
CICSA1 STACKREF="CRMST1" LSYSID="CR08" RDOM="CICSA1" RSYSID="CICS" RLUNAME="CICSA"
CICSA2 STACKREF="CRMST2" LSYSID="CR09" RDOM="CICSA2" RSYSID="CICS" RLUNAME="CICSA"
 
6.
Listing 9‑19 Define Service
*DM_EXPORT
 
DEFAULT:
CONV=N
 
MIRROR
RNAME="MIRRORSERV"
INBUFTYPE="STRING"
OUTBUFTYPE="STRING"
 
Configuring VTAM List
Define two APPC LUs, for instance, define the LU CRMLU08 and CRMLU09, as shown below:
Listing 9‑20 Define APPC LUs
CRMMN3 VBUILD TYPE=APPL
CRMLU08 APPL ACBNAME=CRMLU08,
APPC=YES,
SYNCLVL=SYNCPT,
AUTH=(ACQ,PASS),
PARSESS=YES
CRMLU09 APPL ACBNAME=CRMLU09,
APPC=YES,
SYNCLVL=SYNCPT,
AUTH=(ACQ,PASS),
PARSESS=YES
 
Configuring Connections
Define two CONNECTION/SESSION pairs for each LU. One CONNECTION/SESSION pair is used to connect to one CICS region. In Listing 9‑10, a CONNECTION/SESSION pair is defined:
Listing 9‑21 Define Connections
ADD GROUP(BEACON1) LIST(BEALST)
DEFINE CONNECTION(CR08) GROUP(BEACON1)
DE(BEA TMA SNA EXAMPLE RDO CONNECTION)
ACCESSMETHOD(VTAM) PROTOCOL(APPC)
NETNAME(CRMLU08)
ATTACHSEC(LOCAL) AUTOCONNECT(NO)
DEFINE SESSION(CR08S) GROUP(BEACON1)
CONNECTION(CR08)
DE(SESSION EXAMPLE)
PROTOCOL(APPC) AUTOCONNECT(YES)
MODENAME(SMSNA100) MAXIMUM(10,5)
DEFINE CONNECTION(CR09) GROUP(BEACON1)
DE(BEA TMA SNA EXAMPLE RDO CONNECTION)
ACCESSMETHOD(VTAM) PROTOCOL(APPC)
NETNAME(CRMLU09)
ATTACHSEC(LOCAL) AUTOCONNECT(NO)
DEFINE SESSION(CR09S) GROUP(BEACON1)
CONNECTION(CR09)
DE(SESSION EXAMPLE)
PROTOCOL(APPC) AUTOCONNECT(YES)
MODENAME(SMSNA100) MAXIMUM(10,5)
 
Note:
Replace the value of GROUP, LIST, CONNECTION, NETNAME, SESSION, MODENAME, and MAXIMUM with your actual value.
Install resource definition in the CICS region, for example, CICSH, and enter commands to install resource definitions:
CEDA INSTALL GROUP (BEACON1)
Programming for DPLC
1.
Edit DYPSAMP to use specific connections defined before:
01 CONN-ST PIC S9(08) COMP.
01 RMT-SYS-1 PIC X(4) VALUE 'CR08'.
01 RMT-SYS-2 PIC X(4) VALUE 'CR09'.
LINKAGE SECTION.
2.
Comment SYSID in MIRRDPLC to use dynamic routing:
EXEC CICS LINK
PROGRAM(REMOTE-SERVICE)
DATALENGTH(REQUEST-LEN)
LENGTH(LENGTH OF COMMAREA)
COMMAREA(COMMAREA)
SYNCONRETURN
* SYSID(REMOTE-SYSID)
RESP(RESP-CODE)
END-EXEC
3.
Compile the MIRRDPLC and DYPSAMP program using following JCL:
//COMPIL1 JOB CLASS=2,MSGCLASS=A,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//PROCLIB JCLLIB ORDER=&SYSUID..SNASNT.JCL
//*
// SET CBLDS=&SYSUID..SNASNT.COBOL
// SET LDDS=&SYSUID..SNASNT.LOAD
//*
//STEP1 EXEC DFHYITVL,
// PROG='MIRRDPLC',
// SRCLIB=&CBLDS,
// DSCTLIB=&CBLDS,
// PROGLIB=&LDDS
//STEP2 EXEC DFHYITVL,
// PROG='DYPSAMP',
// SRCLIB=&CBLDS,
// DSCTLIB=&CBLDS,
// PROGLIB=&LDDS
//*
4.
DEFINE PROGRAM(DYPSAMP) GROUP(SNASNT)
DEFINE PROGRAM(MIRRDPLC) GROUP(SNASNT)
DESCRIPTION(BEA TMA SNA DPL CLIENT)
LANGUAGE(COBOL) DATALOCATION(ANY)
5.
CEDA INSTALL GROUP (SNASNT)
Configuring CICS System Initialization Table
Add the following definition in the CICS system initialization table, CICSTS42.CICS.CICSH.SYSIN(DFH¥SIPT):
*PLTPI=00 DFHPLT Table Assembly (DL2)
DTRPGM=DYPSAMP
RLS=YES record level sharing
Multiple Connections and Multiple Links
Unlike the single connection and multiple links, in this scenario, each CRM accepts two connections from GWSNAX in two separate Tuxedo domains. One domain serves as a master, and the other serves as a slave.
CRM supports both multiple connections and multiple links simultaneously.
Notes:
Figure 9‑4 Multiple Connections and Multiple Links
The configurations for multiple connections and multiple links are almost same as that of the single connection scenario and won’t be explained again. You can refer to the preceding configuration steps in Single Connection and Multiple Links. There are just some slight differences in the configuration of variables IPCKEY, APPDIR, TUXCONFIG, TLOGDEVICE in UBBCONFIG, and DMTLOGDEV in DMCONFIG.
 

Copyright © 1994, 2017, Oracle and/or its affiliates. All rights reserved.