IPIC is a modern CICS communication protocol based on Transmission Control Protocol/Internet Protocol (TCP/IP). This article covers a service-oriented architecture (SOA) deployment approach with CICS ECI XA resource adapter using IPIC protocol connectivity to CICS from IBM WebSphere Application Server with CICS Transaction Gateway deployed in local mode on IBM AIX.
Benefits and features of IPIC protocol
The IPIC protocol includes the following benefits and features.
- IPIC protocol enables JEE applications using the ECI resource adapter to call CICS programs.
- IPIC supports ECI requests from CICS Transaction Gateway version 7.1 or later.
- IPIC networking capabilities enable two-phase commit (XA) connections directly from WebSphere Application Server into a CICS region version 3.2 or later, without a Gateway daemon.
- IPIC supports channels and containers programming model.
- IPIC supports Secure Sockets Layer (SSL) authentication between CICS Transaction Gateway and CICS Transaction Server (CICS TS).
- The end-to-end monitoring and operational problem-management capability for the integrated environment is enhanced through improved transaction tracking. This tracking is achieved through the addition of an originating client IP address and CICS Transaction Gateway point of origin to the CICS task association data for the deployed WebSphere Java EE applications.
- The existing CICS applications can use the IP protocol (with IP interconnectivity resource definitions in CICS) using the appropriate deployment topology.
- IPIC provides reduced cost of IP networking, and keeps IP connections up and running during periods of inactivity.
Integrated environment: Software prerequisites
The following software is required for the integrated environment.
- CICS ECI XA resource adapter
- CICS Transaction Gateway version 7.1 or later for AIX
- CICS Transaction Server version 3.2 or later for z/OS
- WebSphere Application Server Network Deployment version 18.104.22.168 (and later), 7.0, and 8.0 on AIX
- AIX version 6.1 or later
- z/OS 1.11 or later
The IPIC protocol is not supported by earlier versions of CICS TG and WebSphere, as shown in Figure 1.
Figure 1. CICS TG integration – IPIC connectivity with CICS TS
SOA connector access to CICS
The CICS TG provides SOA connector access to CICS TS for JEE and Java EE Connector Architecture (JCA) applications deployed on WebSphere to call existing CICS programs.
The CICS TG deployed on AIX would provide two-phase commit (2PC) XA transaction support in local mode and no-XA transaction support in remote mode, when using IPIC protocol for communication with CICS TS, as illustrated in the Figure 2.
Figure 2. Comparing CICS TG on AIX in local mode and remote mode using IPIC
The deployment features of CICS TG on AIX (supporting XA) with IPIC connectivity protocol for Java and JEE applications are summarized below:
Listing 1. Deployment features of CICS TG on AIX using IPIC with XA
Programming language JEE/Java Application Programming Interface ECI JEE XA Networking connectivity protocol IPIC Application Server WAS Operating System AIX 2-phase commit support JCA(XA) Request Monitoring Exits Available Deployment Topology 'Local' mode (WAS and CTG on AIX) Deployment Architecture Two-tier SOA Resource Adapter ECI XA Resource Adapter CICS System CICS TS on z/OS
This approach would use two-tier deployment architecture to use the IPIC capabilities. The CICS TG and WebSphere Application Server would be deployed on AIX, and CICS Transaction Server would be on z/OS.
The CICS TG would run in the local mode of operation without the stand-alone Gateway and client daemons. The IPIC driver and ECI resource adapter (CICS TG) would run in the WebSphere Application Server address space and connect to specified CICS region on z/OS to service the client requests along a transaction path. Figure 3 shows the WebSphere Java client accessing CICS using the IPIC connection.
Figure 3. Deployment architecture
The Gateway and client daemon components of CICS TG are not included in this deployment approach.
In this deployment instance, a system topology, as shown in Figure 4, would consist of a total of eight logical partitioned (LPAR) AIX nodes, with two instances (S1 and S2) of WebSphere Application Server (clustered) on each AIX LPAR node, and there would be direct J2EE Connector architecture (J2C) connections (configured to a maximum of 50) from the ECI resource adapter-IPIC driver installed in each WebSphere Application Server (AIX) to the CICS region (z/OS).
Figure 4. System topology with CICS TG in 'local' mode using IPIC
In this deployment, the Java EE applications would access IBM DB2® using JDBC, and CICS using CICS TG, with IPIC as the communication protocol.
Configurations and resource definitions
The configurations for WebSphere and CICS TG, and CICS TS resource definitions are covered in the succeeding paragraphs.
(a) WebSphere - ECI resource adapter installation and configuration
The CICS ECI XA resource adapter can be installed and configured using the WebSphere Administrator console. The installation of XA ECI RAR file is shown in Figure 5 and Figure 6 (along with the general properties). On installation of the resource adapter, a connection factory need to be created and configured, which would specify the IPIC connection to CICS TS.
Figure 5. Installation of XA ECI resource adapter
Figure 6. Installation of XA ECI resource adapter - general properties page
The IPIC connection from WebSphere (with CICS TG deployed in local mode) to CICS TS, can be configured in the J2C connection factory's custom properties, as shown in Figure 7.
- ConnectionURL can be set to local://.
- ServerName can be set to tcp://acicshost.com:3259, where acicshost.com is meant to be the actual CICS TS host name and port 3259 is meant to be an actual listening port. ServerName (that is, the CICS server name) specified will configure IPIC to use a TCP connection to CICS.
Figure 7. J2C connection factory (custom properties) for ECI resource adapter
(b) CICS Transaction Gateway - configuration
In this deployment approach with CICS TG in local mode, the CTG.INI initialization file would not contain configuration information relating to any IPIC server (that is, the IPICSERVER section would not be defined). The IPIC connections would directly be pointed to CICS TS IPIC listener from WebSphere (as covered above under WebSphere configuration). The Gateway, client daemons, and SERVER section would not be configured in the CTG.INI, as they are not used in this approach. However, the ECI resource adapter would check for the full CICS TG product, which must be installed on the system.
(c) CICS Transaction Server - resource definitions
To establish an IPIC connection with the remote CICS region, the TCPIPSERVICE (that is, the TCP/IP listener to CICS) and IPCONN resource definitions would be required on the CICS region, as shown in Figure 8. To activate IPIC at CICS startup, the System Initialization (SIT) parameter, TCPIP must be set to YES.
Figure 8. CICS resource definitions for IPIC
TCPIPSERVICE resource definition
The TCPIPSERVICE resource definition configures a listening port for IPIC, and this port should not be used by other process, such as a CICS service defined with ECI over TCP/IP connection. The name of the TCPIPSERVICE resource must match the value of the TCPIPSERVICE attribute of the IPCONN resource.
Listing 2. TCPIPSERVICE definition for IPIC connection
DEFINE TCPIPSERVICE Name of the TCPIPSERVICE to receive inbound requests (same that specified on the IPCONN definition) IPADDRESS IP address to listen at PORTNUMBER Port number to listen on PROTOCOL Must be IPIC for IP inter-connectivity links SOCKETCLOSE Must be NO for IP inter-connectivity links TRANSACTION Transaction to process new requests URM IPCONN auto-install user program
The messages received by the IPIC TCPIPSERVICE must conform to IPIC protocol standards, as otherwise they would be rejected.
IPCONN resource definition
The IPCONN resource can be automatically created and installed for each connection, if the IPCONN definition has not been predefined. Some of the inbound attributes of the IPIC connection are specified by the TCPIPSERVICE definition. The IPCONN definition contains the TCP/IP name and the port number of the CICS region. As the CICS TG to CICS TS would use one-way IPCONN, the listening port need not be specified.
Listing 3. IPCONN definition for IPIC connection
DEFINE IPCONN Local name for connection HOST Host name of remote system PORT Listening port - Do not specify port for one way IPCONN TCPIPSERVICE Name of a PROTOCOL(IPIC) TCPIPSERVICE that defines the attributes of inbound requests
Advantage of full XA transactions
The applications using a non-XA JCA ECI resource adapter, optimized with the last participant support (LPS) in WebSphere Application Server can have a heuristic outcome. The LPS feature of WebSphere Application Server allows a single non-XA resource adapter to participate in an XA transaction, in which, all the XA resources are prepared first. If any one fails, all the XA resources as well as the non-XA resource are rolled back. If all the prepares on XA resources work successfully, then the non-XA resource is committed. However, if that one fails, all the XA resources are rolled back. The branch that could have a heuristic outcome (which might occur in certain situations) is the non-XA branch (ECI resource adapter).
Any such heuristic outcome can be mitigated by using an XA-ECI resource adapter, wherein, the commit would mean that everything is committed and rollback would mean everything is rolled back across all of the resources in the global transactions coordinated by WebSphere Application Server (Transaction Manager) using the two-phase commit protocol (2PC).
The advantage of full XA transactions is that the deployed Java EE applications can be capable of having complex and distributed transactions, with all participating XA resources, such as CICS TS, DB2, and CICS TG (XA ECI resource adapter), and thereby ensuring full data integrity.
The IPIC protocol that supports two-phase (XA) commit transactions can provide the underlying connectivity in the transactional integration for JEE applications deployed in WebSphere Application Server to CICS using XA ECI resource adapter of CICS TG deployed on AIX in local mode.
(a) Origin data
The IPIC protocol provides association data so that the transactional requests can be traced from Java EE applications through CICS TG to CICS programs with the identifiers. This feature is not available in ECI over TCP/IP (another CICS communication protocol). The origin data (which helps to analyze transaction flows) is exposed in CICS and available through request monitoring exits.
(b) Resource management
In case, any long-running transactions in CICS is stuck (say on account of any deadlocks in the database), automatic abnormal end of task (abend) by timeouts can be effected by configuring the connections from WebSphere to CICS. Therefore, instead of waiting for however long and holding up the resources, the WebSphere can perform an abnormal end of the outstanding transactions.
(c) Tivoli monitoring
The IBM Tivoli® Performance Viewer in WebSphere (Deployment Manager) Administrator Console displays performance data for the selected application server in the clustered environment, as illustrated in Figure 9. In particular, the JCA connection, JDBC connection, and WebContainer thread pools can be monitored.
Figure 9. WebSphere-Tivoli performance monitoring
It is pertinent to mention that the CICS TG's Gateway daemon (that is the Connection Manager and Worker Threads) and client daemon have not been used in this deployment approach, and therefore, they would not be available for monitoring.
This article is for system architects, technical managers, and administrators of operational systems who consider using the benefits of the IPIC protocol for their integrated deployment environment consisting of WebSphere Application Server v7.0 or later, CICS TG v7.1 (or later), and CICS TS v3.2 (or later).
- CICS Transaction Server for z/OS version 3.2 IP inter connectivity (IPIC) learning path.
- CICS Transaction Server for z/OS version 4.2 IP inter connectivity (IPIC) learning path.
- CICS Transaction Gateway version 7.1 Scenarios
- CICS Transaction Gateway version 7.1 configuring IPIC on CICS Transaction Server for z/OS
- Integrating CICS and WebSphere Application Server using XA global transactions
- CICS Transaction Gateway version 7.2 IPIC XA support
- CICS Transaction Gateway version 7.2 configuring IPIC in local mode
- Supported Software for CICS Transaction Gateway version 8.0
- CICS Transaction Gateway version 8.1 - Request monitoring exits
- CICS Transaction Gateway version 8.1 - ECI resource adapter deployment parameters