Sunday, 10 January 2010

zPrime for IMS

The latest webinar from Virtual IMS CONNECTION ( was entitled, “Reducing mainframe costs – in a BIG way”, and was presented by Tony Lubrano, a product author at NEON Enterprise Software. Tony has been in data processing since 1975 and has been a software developer since 1993. As a software developer for Candle Corporation, Tony led the team that developed the Candle Command Center for IMS and DB2 products, as well as developing components of Omegamon II for IMS. Tony has been a product author with NEON Enterprise Software for the past 14 years developing many IMS products. NEON’s IMS Prefix Update Utility, Database Director, Application Director, and HALO are some of the commercial products Tony has developed. Most recently, Tony is one of the product authors of the NEON zPrime product.

Tony started his presentation by explaining what NEON zPrime actually is. He said that:
  • NEON zPrime “facilitates” the movement of processing from a general purpose processor (CP) to a specialty processor (zIIP or zAAP)… It does not guarantee its movement
  • NEON zPrime is a proprietary software solution governed by trade secrets. Details will not be publicly disclosed
  • There is no publicly documented interface that facilitates this capability.
  • There is no privately documented interface, that has been disclosed to NEON, that facilitates this capability.

Tony then clarified exactly what zPrime does not do. He said zPrime does not:
  •  Hook/alter z/OS dispatcher
  • Hook/alter Workload Manager (WLM)
  • Hook/alter System Management Facility (SMF)
  • Hook/Alter Resource Measurement Facility (RMF)
  • Enable/Disable any type of processors on any LPAR.

The workloads that are supported by zPrime are: IMS MPPs (transactions), IMS BMPs (transactions, online batch), IMS IFPs (transactions, online batch), IMS DLI or DBB (batch database), CICS transactions, TSO/ISPF, DB2 application programs, DB2 stored procedures, batch application programs, and all NEON’s IMS utilities.

Tony discussed how the various workloads could be enabled to use zPrime and then focused on zPrime for IMS enablement. These include:
  • IMS pre-initialization exit
  •     –    JCL change
  •     –    IMS Proclib change.
  • Batch Wrapper
  •     –    JCL Change
  • Language Environment (LE) Exit
  •     –    SMP/E Usermod
  • NEON IMS utilities.

The zPrime IMS pre-initialization exit:
  • Enables IMS MPP, BMP and IFP processing
  • Copy ?neonhlq.LOAD(NSLZPIMS) to the IMS Reslib
  • Create/modify the pre-initialization proclib member (DFSINTxx)
  • Modify the MPP, BMP, and/or IFP job JCL to point to the pre-initialization proclib member.

Picking up the point about creating or modifying the DFSINTxx member, Tony said:
  • It must be in the //PROCLIB DD in the BMP, MPP, or IFP JCL
  • Member name is DFSINTxx – where xx is the pre-initialization suffix
  • Add NSLZPIMS to the list of modules in the DFSINTxx member.

When modifying the BMP, MPP, and IFP JCL, Tony told us that the Execution Parameter must specify the preinitialization member name suffix, and the Jobstep must contain a //PROCLIB DD containing the data set with the DFSINTxx member.

Tony explained how the zPrime Batch Wrapper worked, and went on to look at the Language Environment exit enablement. He suggested:
  • Affects all LE-enabled programs
  •     –    Not limited to IMS applications
  • SMP/E usermod for global/production use
  •     –    Updates LE runtime library – usually in Linklist
  •     –    No JCL changes required
  • Linkedit job for local/testing use
  •     –    Link to non-global library
  •     –    Add to STEPLIB/JOBLIB.

Tony talked about using NEON’s IMS utilities and then described in depth customizing the NEON server (NESS). He then continued by talking about enabling zPrime workloads, suggesting:
  • It uses documented exits for all system enablement
  •     –    Implementation of exits are well understood by appropriate systems personnel
  •     –    Implementation of exits are documented in appropriate product documentation
  • zPrime exits and batch wrapper do not force enablement… only make call to the NESS
  • Everything to be enabled must be specified via the zPrime Enablement Console
  • ex ‘?neonhlq.EXEC(zprime)’.

So, how good is zPrime? Tony said that he used the worst values reported by customers and found savings of 44% for CICS, 75% for TSO/ISPF, 84% for Batch Wrapper, 89% for DB2, 91% for IMS MPP, and 93% for IMS BMP!

Tony also identified some known problems. With z/OS V1.9 and below:
  • TPUT SRB specifies CPU affinity resulting in intermittent S072-8 abends. Affinity points to a zIIP or zAAP however, the generated SRB is not eligible for zIIP or zAAP processing.
  • Does not produce a dump – only logrec data
  • No adverse affect to processing.

In terms of the Batch Wrapper:
  • SMF 30 record shows the program name as NSLZPAPP when NESS is not running
  • Not an issue when using the LE, TSO/ISPF, IMS, CICS or DB2 exits.

Membership of the Virtual IMS Connection is free and open to anyone interested in IMS. Webinars are presented free to members. You can join by going to and completing the form.

No comments: