SOA integration with IBM CICS from IBM WebSphere Application Server on IBM AIX

Benefits of the IPIC protocol and XA transactions

IBM® WebSphere® and IBM CICS® Transaction Gateway (CISCS TG) deployed to run on IBM AIX® in local mode with the CICS ECI XA resource adapter, using the Internet Protocol Interconnectivity (IPIC) protocol for communication with CICS Transaction Server for IBM z/OS® offers many benefits, especially in the operational management of the integrated environment with deployed Java™ Enterprise Edition (JEE) applications.

Share:

Vivek Arora (viarora@au1.ibm.com), Senior WebSphere Accelerated Value Leader, IBM Australia

vivek-picVivek Arora is a Senior WebSphere Accelerated Value Leader with IBM Software Group Services in Canberra, Australia. In his current role he provides strategic and value-adding services to customer on architecture, integration and migration, problem management and technical support focused on Infrastructure, Message Oriented Connectivity and Business Process Management and Service Oriented Architecture (SOA).



19 February 2013

Introduction

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 6.1.0.9 (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
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
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

Deployment architecture

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
Deployment architecture

The Gateway and client daemon components of CICS TG are not included in this deployment approach.


System topology

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
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
Installation of XA ECI resource adapter
Figure 6. Installation of XA ECI resource adapter - general properties page
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
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
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.


Operational management

(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
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.


Conclusion

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).


Resources

Comments

developerWorks: Sign in

Required fields are indicated with an asterisk (*).


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Information in your profile (your name, country/region, and company name) is displayed to the public and will accompany any content you post, unless you opt to hide your company name. You may update your IBM account at any time.

All information submitted is secure.

Choose your display name



The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

Required fields are indicated with an asterisk (*).

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


All information submitted is secure.

Dig deeper into AIX and Unix on developerWorks


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=AIX and UNIX
ArticleID=857839
ArticleTitle=SOA integration with IBM CICS from IBM WebSphere Application Server on IBM AIX
publish-date=02192013