Configuring a highly available Gateway group with two-phase commit and IPIC (SC03)

This scenario shows how to configure a highly available gateway group (HA group) of Gateway daemons with connections to CICS over IPIC. The scenario supports two-phase commit (XA) transactions and uses policy-based dynamic server selection for selecting a CICS server.

A highly available gateway group consists of a group of Gateway daemons that share the same TCP/IP port and are capable of providing XA transactional support.

Note: This scenario uses CICS® Transaction Gateway connecting to CICS Transaction Server V5.3 over IPIC, and WebSphere Application Server V8.0. You can run this scenario with other versions, but the illustrations and samples might vary. For the minimum requirements, see Prerequisites.

The figure shows workload from a connection factory in WebSphere Application Server being served by similar Gateway daemons (CTGA1, CTGA2) which represent the HA group “GroupA”. Any supported JEE application server can be used in this scenario.

This figure shows XA transactions in a high availability scenario with connections to CICS over IPIC.
Figure 1. XA transactions over IPIC in a high availability scenario

Each Gateway daemon is connected to CICS servers CICSA1 and CICSA2 using the IPIC protocol. A transaction might be handled by Gateway daemon CTGA1 or CTGA2, and the work in CICS will be handled by one of CICSA1 or CICSA2. In this scenario, the Gateway daemon is configured for dynamic server selection using a CICS request exit. Dynamic server selection is performed at the start of each new transaction and manages the associated transactional affinity with the selected CICS server, for the life of the transaction.

Note: The connection factory definition in WebSphere Application Server does not need to contain details of the actual CICS servers.
Table 1. Values used in this scenario
Component Property Where set Details
TCP/IP Port sharing PROFILE.TCPIP
4148 TCP CTGA* SHAREPORT
CICS TG APPLIDQUALIFIER GroupA_GW.ini
GROUPA
CICS TG TCP protocol handler GroupA_GW.ini
Port number 4148
CICS TG Gateway group A common configuration GroupA_GW.ini
maxconnect=500
maxworker=250
xasupport=on
CICS TG IPIC connection to CICSA1 GroupA_GW.ini
name=CICSA1
hostname=server.ibm.com
port=4149
CICS TG IPIC connection to CICSA2 GroupA_GW.ini
name=CICSA2
hostname=server.ibm.com
port=4150
CICS TG A1 Gateway instance A1 environment variables CTGS03A1
CICSCLI=config_path/GroupA_GW.ini
CTGSTART_OPTS=-applid=CTGA1
-statsport=4151
CICS TG A2 Gateway instance A2 environment variables CTGS03A2
CICSCLI=config_path/GroupA_GW.ini
CTGSTART_OPTS=-applid=CTGA2
-statsport=4152
CICS TS CICSA1 TCPIPService for IPIC connection Using CEDA on CICSA1
name=SRV4149
protocol=IPIC
port=4149
CICS TS CICSA2 TCPIPService for IPIC connection Using CEDA on CICSA2
name=SRV4150
protocol=IPIC
port=4150
WebSphere Application Server CICS TG ECI resource adapter connection factory J2C connection factories
name=ECI-XA-GROUPA
WebSphere Application Server CICS TG ECI resource adapter connection factory J2C connection factories JNDI Name=eis/CICSGroupA
WebSphere Application Server CICS TG ECI resource adapter connection factory ECI-XA-GROUPA connection pool properties
Maximum connections=500
WebSphere Application Server CICS TG ECI resource adapter connection factory ECI-XA-GROUPA custom properties
ConnectionURL=tcp://server.ibm.com
PortNumber=4148
ApplidQualifier=GROUPA
Applid=XAWASA
xasupport=on
The sample configuration and environment variable files for this scenario are:
  • GroupA_GW.ini
  • CTGS03A1
  • CTGS03A2
The sample files are installed in UNIX directory <install path>/samples/scenarios/sc03 and in the <install.hlq>.SCTGSAMP library.