|
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.
- 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.
- RECEIVE a new level of maintenance or a set of
PTFs.
- Research any HOLDs, especially ACTIONS.
- APPLY the maintenance. Research and resolve any
problems.
- Take the Test LPAR down.
- 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
- IPL the Test LPAR.
- 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.
- 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.
- Take the Production LPAR down.
- 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.
- Copy MAINTSVC from hlq.CICS.TEST.SDFHLPA to
hlq.CICS.PROD.SDFHLPA after renaming the existing MAINTSVC to
MAINTSVO in hlq.CICS.PROD.SDFHLPA.
- IPL the Production LPAR.
- 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.
- Bring up the Test CICS system on the Production
LPAR and perform rudimentary testing.
- Change CICSSVC=216 to CICSSVC=217 in
hlq.CICS.DEVL.SYSIN, in whatever member is the active member.
- 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.
- Bring up the Development CICS system on the
Production LPAR. Let it run there for several days.
- Take the Test LPAR down.
- Rename DFHCSVC to DFHCSVCO in
hlq.CICS.TEST.SDFHLPA, then copy MAINTSVC to DFHCSVC in
hlq.CICS.TEST.SDFHLPA.
- IPL the Test LPAR.
- Change CICSSVC=217 to CICSSVC=216 in the SIT,
in hlq.CICS.TEST.SYSIN, or via the EXEC statement.
- 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.
- Take the Production LPAR down.
- 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.*.
- IPL the Production LPAR.
- When the Production CICS system is up, it will
be using the new maintenance, so do some testing.
- 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.
- 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.
- Comment hlq.CICS.TEST.SDFHLPA and
hlq.CICS.TEST.SDFHLINK out of STEPLIB in the Test CICS system.
- 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".
|