Some PTFs, such as RO41423, update the SVC identified within the SMP/E environment. Clients may want to apply this update to other SVCs within their overall CA IDMS environment. This document outlines the procedures to accomplish that.
When a PTF affects the SVC, the PTF contains HOLDDATA to notify you that the SVC is being modified. This Knowledge Document tells you how to install the PTF without affecting your production systems and how to create an alternate SVC to exercise the new code using your test systems. This Knowledge Document pertains to all PTFs affecting the SVC, but uses RO41423 as a specific example.
Installing PTF RO41423 updates your existing CA IDMS SVC load module in the SMP/E APFLIB loadlib. If you don't want your production system to use the updated SVC before you have tested it, ensure that CAIRIM loads SVCs from a different loadlib, not the SMP/E APFLIB loadlib. Doing so ensures that applying the APAR does not impact the live CA IDMS environment(s), even if your site has an unexpected IPL and CAIRIM is executed. For example, the CAIRIM job could be loading the CA IDMS SVC used by your CA IDMS CVs from a SYS1.LINKLIB loadlib that is not modified by any IDMS SMP/E process. In this case, installing PTF RO41423 re-links the CA IDMS SVC in your SMP/E controlled loadlib (APFLIB), but the updated CA IDMS SVC does NOT replace the current production SVC in the SYS1.LINKLIB loadlib. The updated SVC is not picked up by CAIRIM since it is not in the production CAIRIM loadlib.
Once you have updated your SVC load module in APFLIB, you can use it to create an alternate SVC load module (with a different SVC number) for testing. It is recommended that you create the alternate SVC load module outside of SMP/E. Since the alternate SVC load module name is different from your current one, you can link the alternate one into APFLIB without destroying your current one. You can then use a different set of CAIRIM JCL to load the alternate CA IDMS SVC load module containing the changes introduced by RO41423. This alternate SVC can be used by your test systems.
CA IDMS Support does not recommend using SMP/E to create any additional SVC load modules. That can be complicated and can result in difficult-to-correct errors. Instead, CA IDMS Support recommends that any additional SVCs be created outside of SMP/E using the following process.
- Choose a new SVC number for testing, say ttt.
- Create assembly and link JCL to create the test SVC load module, IGCttt. The link statements shown here are atypical, but there are two benefits of using this method. The PTF does not have to be ACCEPTed first, and no new datasets are required.
- The assembly step below creates a #SVCOPT object using the test SVC number, ttt. The SYSIN input statements in this JCL should be reviewed to ensure that the they reflect your environment. On execution, this puts the new object in a temporary sequential file.
//ASM EXEC PGM=ASMA90//SYSLIB DD DSN=SYS1.MACLIB,DISP=SHR// DD DISP=SHR,DSN=idms.smpmts// DD DISP=SHR,DSN=idms.distmac//SYSPRINT DD SYSOUT=*//SYSLIN DD DISP=(NEW,PASS),DSN=&&TEMP,// UNIT=SYSDA,SPACE=(TRK,(1,1)),// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8880)//SYSIN DD *#SVCOPT SVCNO=ttt,ENVIRON=MVS,CVKEY=xEND/*
- The link step below creates the test SVC load module. It concatenates the #SVCOPT object from the assembly step with the link control statements. This causes the new test #SVCOPT csect to be combined with the remaining csects from the original SVC load module. This works because the remaining csects from the original SVC load module contain the updates from RO41423. The original SVC number is represented by nnn and the new SVC number for testing is represented by ttt. To avoid destroying your original SVC load module, be certain that the NAME statement has the test SVC number, not the original SVC number.
//LINK#SVC EXEC PGM=HEWL,PARM='LET,MAP,LIST,NCAL' //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(20,20)) //SYSPRINT DD SYSOUT=* //APFLIB DD DISP=SHR,DSN=your.apflib //SYSLMOD DD DISP=OLD,DSN=your.apflib //SYSLIN DD DISP=(OLD,DELETE),DSN=&&TEMP // DD * ORDER IGCttt REPLACE IGCnnn INCLUDE APFLIB(IGCnnn) ENTRY IGCttt NAME IGCttt(R) /*
- Execute the assembly and link JCL based on the examples above to create the test SVC load module in APFLIB.
- Create alternate CAIRIM JCL which loads from APFLIB, and use it to load the test SVC.
- Assemble and link a new RHDCSRTT load module using the test SVC number. If your environment uses CICS, it will also be necessary to create test versions of the CICS interface modules which specify the new SVC number.
Update a SYSTEM definition using the Sysgen compiler to specify that the CV will use the test SVC number, and then bring up the system to use the test SVC.
- The new RHDCSRTT and IDMSINTC load modules can go into the DBA loadlib of a test system.
- When the test SVC has been validated, eliminate the test SVC apparatus and use the real (original) SVC that was updated by RO41423, in production.
- Delete the test RHDCSRTT load module, the test SVC load module and the test CAIRIM JCL.
- If necessary, modify the RHDCSRTT & CICS interface modules in production to reflect the new SVC name as they did in the test environment.
- Copy the SVC load module from APFLIB to the loadlib from which CAIRIM loads, replacing the old version.
- At this point, the next IPL will CAIRIM in the new CA IDMS SVC.
- Alternatively, you can shut down all CA IDMS CVs that use this SVC and submit a CAIRIM job to refresh the SVC with the new IDMSMSVC. You cannot REFRESH the SVC with CAIRIM if a CA IDMS CV using it is running. If that is done, external interfaces to the CV such as BATCH CV JOBS, UCF, CICS etc. that interface with the CV will not work.
CAIRIM should never be run to replace an SVC while a CV is actively using that SVC.