IBM Support

EQQCLEAN may delete an incorrect dataset if DUMMYLASTSTEP parameter not coded

Question & Answer


Question

Since PK96693 was implemented (September 2009) an incorrect dataset may be deleted by the restart and cleanup program EQQCLEAN unless RCLOPTS parameter DUMMYLASTSTEP is explicitly coded.

Answer

Revised October 9, 2014 with correct PTF status

If a job that has a DISP=PASS dataset in the final step is restarted by TWSz, EQQCLEAN may delete the WRONG DATASET. This can be prevented by following the documentation provided in DOC APAR PM60019 which is copied below for convenience (also refer to INFO APAR II14492):


RCLOPTS parameter DUMMYLASTSTEP, was created by APAR PK96693.

DUMMYLASTSTEP (StepName/'IBM50941')

Use this keyword to allow Restart and CleanUp function correct
handling of temporary data set when they are referenced with
DISP=PASS in the last step of the submitted JCL.
The problem is that in this particular situation Restart and
CleanUp could suggest to delete wrong data sets.
To avoid this problem you can:
(1) Change the disposition to KEEP, by setting on trackers:
OPCOPTS RCLPASS(YES)

or
(2) Add a new dummy step as last one to all jobs submitted
by TWS for z/OS (by using this keyword)
Solution (1) causes the retain of temporary files and this can
eventually cause DASD problems as volumes may become full due
to these files not deleted. Anyway you must adopt this
solution when EWTROPTS RETCODE(LAST) is used.
Solution (2) can be chosen if EWTROPTS RETCODE(HIGHEST) is
used.
If you specify this keyword a dummy last step will be added
to each job submitted by TWS for z/OS as:

// StepName EXEC PGM=IEFBR14,COND=EVEN

StepName is a string of characters with maximum length of 8.
If you leave it blank the default value IBM50941 is used.

Note that:
- No check about already existing last dummy step with the
same name is done.
- If an end of job is found within the JCL, all the JCL
lines starting from end of job are commented out except
the just added last dummy step.
- No check about maximum number of steps reached within the
JCL is done.
If you have JCL that could have this problem:
- If JCL does not need data set clean up actions, or
the JCL has no DISP=PASS files, to prevent the tailoring
you can add the following line into the JCL:
// EQQJHDMY SKIP

and comment it OUT with the *.

Note that you can add this statement anywhere in the JCL
even after the end of job, except than inside an INCLUDE
member or an external or nest Procedure.
The important thing is that there is only one blank
between EQQJHDMY and SKIP.

-Otherwise, if clean up is needed, consider the
restructure of the JCL to reduce the number of steps
(end of excerpt from PM60019)

HIPER APAR PI14422 will cause a WARNING message to be issued
in the controller EQQMLOG if RCLEANUP(YES) is coded and DUMMYLASTSTEP is NOT
coded:

EQQZ309W RCLEANUP(YES): RCLOPTS PARAMETER DUMMYLASTSTEP IS RECOMMENDED
.
The PTFs for this APAR have an AO (automated operations) HOLD, with text advising that
if an AO product is available an automated routine should be set up to handle this message, as failure to handle the message may result in EQQCLEAN deleting an incorrect dataset.

The PTFs are:

UI17057 8.5.0
UI17058 8.5.1
UI17059 8.6
UI17060 9.1
UI17061 9.2

[{"Product":{"code":"SSRULV","label":"IBM Workload Scheduler for z\/OS"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"--","Platform":[{"code":"PF035","label":"z\/OS"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
13 September 2019

UID

swg21670125