HOME
THE FIRM
Why BCS?
CLIENT LIST
Capabilities
Expertise
Proven Services
SUCCESS STORIES
ARTICLES
PRESENTATIONS

 

CICS MAINTENANCE METHODOLOGY

By Jim Schesvold
Copyright © 2003 Best Customer Solutions, Inc.

Introduction.

There are 2 situations where utilizing 2 copies of CICS PARMLIB libraries and Type 3 SVC's can be useful: (1) implementing a new level of CICS maintenance, and (2) upgrading to a new release of CICS. Having 2 sets of these CICS objects allows for quicker, less disruptive fallback when there is a problem with a new release or maintenance, and for concurrent usage of both maintenance levels or releases.

As a point of clarification, this maintenance methodology is not needed when upgrading to a new CICS release, because CICS provides downward compatibility between releases if you use CICS common functions from the highest release. This methodology may be useful for an upgrade, however.

The primary need for this methodology is for upgrading to a new maintenance level. In particular, a maintenance SVC is needed when you're moving to a new maintenance level and the Type 3 SVC (DFHCSVC) is changed. Note, however, that if you’re running Multiple Region Option, CICS systems communicating via MRO must all use the latest version of DFHCSVC and DFHIRP.

Data set and other names used in the examples below are for illustration purposes, and can be changed depending on your needs.

Components involved.

Six data sets are involved in the migration of maintenance from Target data sets to Test data sets to Production data sets. They are:

  • SDFHLPA, which is the LPALIB data set. It must have an entry in LPALSTxx and an APF entry in PROGxx. Among other things, this data set contains the Maintenance SVC (which is a version of DFHCSVC that has been renamed via SMP/E, see below).
  • SDFHLINK, which is the LNKLST data set and must have an APF and LNKLST entry in PROGxx.
  • SDFHAUTH, which goes in the CICS Proc's STEPLIB, and must have an APF entry in PROGxx.
  • SDFHLOAD, which goes in the CICS Proc's DFHRPL, and needs no needs no PARMLIB entries.
  • SEYULINK, which is new with CICS TS, and is the LNKLST data set for CICSPLEX/SM. It must have an APF and LNKLSTxx entry in PROGxx.
  • hlq.mlq.DFHCSVC.SDFHLPA (or whatever other valid name you choose), which is a data set specifically created to contain one member, DFHCSVC, which is the production SVC. This data set must have an entry in LPALSTxx and an APF entry in PROGxx.

Levels of Data Sets.

3 levels of data sets are involved in the migration of maintenance from Target data sets to Test data sets to Production data sets. They are:

  • hlq.mlq.dsn, where hlq is your high level qualifier for CICS Target data sets, mlq is the mid-level qualifier (varies with release), and dsn is the data set name (SDFHLPA, SDFHLINK, etc.).
  • hlq.CICS.TEST.dsn. These are data sets which are normally specified in the Test LPAR’s PARMLIB, and used by Test CICS systems.
  • hlq.CICS.PROD.dsn. These are data sets which are normally used in the Production LPAR’s PARMLIB, and used in Application Development or Production CICS systems.

Creating a Maintenance SVC.

The reason a maintenance SVC (we’ll call it MAINTSVC) is required is that the SVC (DFHCSVC in SDFHLPA) cannot be STEPLIBed around. The CICS Type 3 SVC is established during system IPL via the IEASVCxx member in PARMLIB, so it cannot be dynamically changed, and it applies to all CICS systems which run on that LPAR. This makes it difficult to test maintenance on specific systems instead of the entire LPAR.

The solution to this problem is to create another SVC with a different SVC number, and specify that SVC number via the CICSSVC= parameter either in the SIT, in SYSIN, or via job Parms for a particular CICS system. Then, when moving to a different maintenance level, changing CICSSVC and STEPLIBing maintenance into the CICS system will keep everything at the same level.

The following steps are needed to create MAINTSVC for CICS:

  • Create a new LPA library, something like hlq.lparname.DFHCSVC.SDFHLPA, and copy DFHCSVC from the existing runtime version of SDFHLPA. Then make the necessary PARMLIB changes in LPALSTxx and PROGxx (see above).
  • Choose a name and number for the maintenance SVC. We’ve chosen MAINTSVC for the name and let’s choose 217 for the number. Also, let's use the USERMOD name of CICSSVC3.
  • Create and apply an SMP/E USERMOD to RENAME the new SVC using something like the following:

//JOBCARD
//STEP1 EXEC SMPEPROC,CSINAME='hlq.GLOBAL.CSI'
//SYSIN DD *
SET BDY(GLOBAL).
RECEIVE SYSMODS.
SET BDY(TARGET).
APPLY SELECT(CICSSVC3).
//SMPPTFIN DD *
++USERMOD(CICSSVC3).
++VER (C150) FMID(HCI5300). ß Verify based on the release you run!!!!!
++RENAME (DFHCSVC) TONAME(MAINTSVC).

Note: From this point forward, maintenance will be applied to MAINTSVC in SDFHLPA, not to DFHCSVC, which is in hlq.mlq.DFHCSVC.SDFHLPA!!

  • Update IEASVCxx in PARMLIB with the following SVCPARM statement:

    SVCPARM 217,REPLACE,TYPE(3),EPNAME(MAINTSVC)

  • The LPAR must then be IPLed for these changes to take effect.

When these facilities are in place, maintenance can tested by STEPLIBing maintenance versions of SDFHLPA, SDFHLINK, and SEYULINK into a particular system, changing SDFHAUTH and SDFHLOAD (if necessary) in the Startup Proc JCL, and bringing it up with CICSSVC=217 in the SIT, or SYSIN, or via the EXEC statement.

Once the MAINTSVC and associated maintenance is sufficiently tested, MAINTSVC can be copied into hlq.lparname.DFHCSVC.SDFHLPA as DFHCSVC (after first renaming the old version to a backup name), and the maintenance would be moved to production libraries, completing a maintenance upgrade. CICSSVC would be changed back to 216 at this point.

You can determine whether you have any compatibility issues with maintenance and the Type 3 SVC by checking the SMP/E output for a given APPLY and determining if DFHCSVC (or MAINTSVC if the above technique is adopted) is changed.

For more information regarding this technique, see the CICS TS Installation Guide at http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/dfha1p03/2.6.2

Example Step by Step Maintenance Procedure.

  1. After installation of a new release, and having already created DFHCSVC in hlq.CICS.TEST.DFHCSVC.SDFHLPA.NEW (VERY IMPORTANT!!!!!), run the CICSSVC3 job to rename the Target version of DFHCSVC to SVCMAINT. 
  2. RECEIVE a new level of maintenance or a set of PTFs.
  3. Research any HOLDs, especially ACTIONS.
  4. APPLY the maintenance. Research and resolve any problems.
  5. Take the Test LPAR down.
  6. Run job TSTCLONE to rename the current TEST versions of SDFHLPA SDFHLINK, SDFHAUTH, SDFHLOAD, and SEYULINK to .OLD, and copy the Target versions of the same data sets to hlq.CICS.TEST.*. (verify the hlq for the Target data sets is correct in TSTCLONE). Rename hlq.CICS.TEST.DFHCSVC.SDFHLPA to hlq.CICS.TEST.DFHCSVC.SDFHLPA.OLD, then rename hlq.CICS.TEST.DFHCSVC.SDFHLPA.NEW to hlq.CICS.TEST.DFHCSVC.SDFHLPA
  7. IPL the Test LPAR.
  8. Change CICSSVC=216 to CICSSVC=217 in the SIT, in hlq.CICS.TEST.SYSIN (in whatever member is the active member), or on the EXEC statement.
  9. Bring up the Test CICS system on the Test LPAR, verify it comes up OK, test CEMT, CEDA etc., and in general, test as much as possible.
  10. Take the Production LPAR down.
  11. If it does not exist, create hlq.CICS.PROD.DFHCSVC.SDFHLPA and copy the production MAINTSVC into it as DFHCSVC. Make the necessary PARMLIB updates.
  12. Copy MAINTSVC from hlq.CICS.TEST.SDFHLPA to hlq.CICS.PROD.SDFHLPA after renaming the existing MAINTSVC to MAINTSVO in hlq.CICS.PROD.SDFHLPA.
  13. IPL the Production LPAR.
  14. Add hlq.CICS.TEST.SDFHLPA and hlq.CICS.TEST.SDFHLINK to the STEPLIB for the Test CICS system if that has not already been done.
  15. Bring up the Test CICS system on the Production LPAR and perform rudimentary testing.
  16. Change CICSSVC=216 to CICSSVC=217 in hlq.CICS.DEVL.SYSIN, in whatever member is the active member.
  17. Add hlq.CICS.TEST.SDFHLPA and hlq.CICS.TEST.SDFHLINK to the STEPLIB for the Development CICS system. Change the DD for SDFHAUTH in STEPLIB from hlq.CICS.PROD.SDFHAUTH to hlq.CICS.TEST.SDFHAUTH. Change the DD for SDFHLOAD in DFHRPL from hlq.CICS.PROD.SDFHLOAD to hlq.CICS.TEST.SDFHLOAD.
  18. Bring up the Development CICS system on the Production LPAR. Let it run there for several days.
  19. Take the Test LPAR down.
  20. Rename DFHCSVC to DFHCSVCO in hlq.CICS.TEST.SDFHLPA, then copy MAINTSVC to DFHCSVC in hlq.CICS.TEST.SDFHLPA.
  21. IPL the Test LPAR.
  22. Change CICSSVC=217 to CICSSVC=216 in the SIT, in hlq.CICS.TEST.SYSIN, or via the EXEC statement.
  23. Bring up the Test CICS system on the Test LPAR, verify it comes up OK, test CEMT, CEDA etc., to test as much as possible.
  24. Take the Production LPAR down.
  25. Run job PRDCLONE to rename the current PROD versions of SDFHLPA SDFHLINK, SDFHAUTH, SDFHLOAD and SEYULINK to .OLD, and copy the TEST versions of the same data sets to hlq.CICS.PROD.*.
  26. IPL the Production LPAR.
  27. When the Production CICS system is up, it will be using the new maintenance, so do some testing.
  28. If problems arise:
  • Take the Production LPAR down.
  • Run job PRDBACK on the Production LPAR. This job will clear the hlq.CICS.PROD.* data sets, and copy the contents of hlq.CICS.PROD.*.OLD into them.
  • IPL the Production LPAR, which will bring the Production CICS system up without the maintenance.
  1. When the maintenance problem is resolved and has been tested on the Test LPAR using the Test CICS system, then on the Production LPAR with the Test CICS system and the Development CICS system, repeat steps 23 through 26 to retry it with the Production CICS system.
  2. Comment hlq.CICS.TEST.SDFHLPA and hlq.CICS.TEST.SDFHLINK out of STEPLIB in the Test CICS system.
  3. Comment hlq.CICS.TEST.SDFHLPA and hlq.CICS.TEST.SDFHLINK out of STEPLIB in the Development CICS system. Leave CICSSVC=217 in hlq.CICS.DEVL.SYSIN.

Disclaimer.

The opinions in this article are solely those of the author, and the information herein is to be taken "as-is".

Back Up Next

 

Send mail to solution@mainframehelp.com with questions or comments about this web site.
Copyright © 2006 Best Customer Solutions, Inc.
Last modified: 06/13/2006