With the advent of powerful new hardware and operating systems, it has become advantageous to move to a multiprocessing environment. The obvious advantage is more computing power at a more cost-effective price. Companies in many industries have invested in developing a multiprocessing environment known as Parallel Sysplex architecture.
Moving from a single processing environment to a multiprocessing environment (Parallel Sysplex) involves challenges, particularly in ensuring that business applications work properly in a sysplex.
The CICSPlex Environment
A CICSPlex is an environment in which multiple, interconnected CICS regions operate. A CICSPlex lets CICS and associated applications use the full capabilities of Parallel Sysplex architecture. A CICSPlex environment is comprised of these hardware and software components:
- Coupling Facility (CF), the element that provides the high-speed caching, list processing and locking functions in a Parallel Sysplex.
- Workload Manager (WLM), which is used to distribute the transaction processing work across available CICS regions.
- VTAM generic resources, which let a user have a persistent connection to CICS even when a CICS region outage occurs.
- Data sharing, which lets multiple CICS applications running in multiple CICS regions read and update a database (VSAM, DB2, IMS/DBCTL) simultaneously.
In an ideal CICSPlex environment, any work can run on any processor under any CICS region in the system. This maximizes use of the hardware capacity and eliminates almost all planned and unplanned downtime. Benefits of running a CICSPlex include:
- Continuous availability
- Dynamic workload balancing
- Single system image
- Single point of control
- Reduced maintenance costs
- Eliminates single point of failure.
A z/OS systems programmer or a CICS systems programmer can make the necessary application code changes for implementing a CICSPlex environment as long as there are no application affinities or interdependencies.
Application Affinity Defined
CICS transactions use many different techniques to pass data. Some techniques require that transactions exchanging data must execute in the same CICS region, imposing restrictions on dynamic transaction routing. If transactions exchange data in ways that impose such restrictions, there’s an affinity between them.
The disadvantage of having application affinities in application code is that the CICSPlex environment cannot be fully utilized. The usual advantage of allowing any work to run on any processor under any CICS region in a CICSPlex is effectively negated for those applications. This reduces the effective use of hardware capacity and doesn’t allow use of parallel CICS systems in a sysplex to avoid downtime. The z/OS or CICS system programmer has little, if any, control over changing the application programs to offset the limitation caused by application affinities. Making changes to the application code usually requires a significant investment of resources from the application programmers.
Application affinities have evolved over many years of iterative improvement to the underlying CICS transaction processing environment.