SMP/E to the rescue!

It goes without saying that you should not be doing this on the active system, and that you should take a backup first, but I'll say it anyway. Back up target libraries and zone, DLIBs and DLIB zone. (DFSMSdss or your favorite alternative is the sysprog's best friend.)

Caveat: I have not personally done this in some time.

Before you do any of the following, go read the SMP/E Commands chapter on GENERATE. Then:

0. Make sure ACCJCLIN is set in the DLIB zone. If it's not, ignore everything below. (You cannot just set it and proceed, because if it's not been set all along SMP/E has not been saving the JCLIN at ACCEPT time.)

1. Run a LIST LMOD(name) XREF for each member that worries you to find out what MODs make them up.

2. LIST all the MODs that are listed by LIST LMOD XREF in both the target and DLIB zones to find and compare their RMIDs.

3. If the RMIDs show that one or more PTFs have been applied but not accepted, accept them all. Bypass all hold conditions including error holds. You're not trying to achieve perfection now, just get back to where you were first. (Alternatively, accept everything for HDZ1D10. You took a backup!)

4. Run GENERATE FORFMID(HDZ1D10). Specify a data set or member for SMPPUNCH.

Note: GENERATE runs suprisingly fast. Don't think things went wrong just because the job ends quickly.

5. If the modules are linked and not copied, edit the output in the SMPPUNCH data set to delete all the link steps except for the one or ones for LPALIB for those load modules, and also to remove all the link control statements for all other load modules. If they are copied, remove all the other steps and all the COPY (or COPYMOD) statements for other members.

6. Run the remaining step or steps. If you directed the link (or copy) steps at your LPALIB data set, then assuming you did the editing right and got the expected return codes, you are now back where you were before Something Bad Happened to those modules from an SMP/E standpoint.

7. If you bypassed errors to accept the PTFs, decide whether to restore the DLIBs from the backup.

You can do recovery for individual modules, whole libraries, FMIDs' worth of stuff, or entire target zones this way. It's perhaps the best-kept open secret in the SMP/E books. I believe GENERATE was originally invented for IPO, way back when, to generate target data sets from DLIB data sets, saving on tape.

Rob Schramm wrote:
Dear Listers,

I am attempting to recover or get back to the proper version of a couple
LPALIB modules.  In this case some sysprog decided to copy altered versions
of a couple of load modules into SYS1.LPALIB.  I have not been able to find
a backup of the modules.  So, I am left with what is in SMP/E to hopefully
save the day.  At first I was hoping for something like an APPLY REDO to
recover the modules.
                  .
  APPLY SELECT( HDZ1D10 )
         CHECK
         BYPASS(HOLDSYSTEM)
         RETRY(YES)

fails because HDZ1D10 was ACCEPTed.

A RESTORE fails for

GIM24501E   RESTORE PROCESSING FAILED FOR SYSMOD sysmod BECAUSE OTHER
SYSMODS WERE DELETED WHEN sysmod WAS APPLIED

I am looking for ideas on how to get back to the correct versions of the
modules.


--
John Eells
IBM Poughkeepsie
ee...@us.ibm.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to