The Delete Program (DLTPGM) command deletes a compiled program or group of programs. If the program is currently being run, the program processing is abnormally ended when this command is issued unless a specific Allocate Object (ALCOBJ) command is in effect in another job. Any high-level language (HLL) or CL program can be deleted.
Restrictions:
- You must have object existence (*OBJEXIST) authority to the program, and execute (*EXECUTE) authority to the library where the program is located.
- If the program to be deleted is currently being debugged, a function check occurs if an implicit reference is made to the deleted program (for example, if a Change Variable (CHGVAR) command specifies PGM(*DFTPGM)). To prevent function checks, use the Remove Program (RMVPGM) command to remove the program from the debugging session before deleting it. If the program is recompiled while the user is in debug mode, remove the program from debug mode (using the RMVPGM command), delete it from the system (using the Delete Program (DLTPGM) command), change and recompile the program, and add the new version of the program to debug mode (using the Add Program (ADDPGM) command).
Program (PGM)
Specifies the program to be deleted. A specific program or a generic program can be specified; either type can be optionally qualified by a library name.
This is a required parameter.
Qualifier 1: Program
- name
- Specify the name of the program to be deleted.
- generic-name
- Specify the generic name of the programs that are to be deleted. A generic name is a character string that contains one or more characters followed by an asterisk (*).
Qualifier 2: Library
- *LIBL
- All libraries in the library list for the current thread are searched until the first match is found.
- *CURLIB
- The current library for the job is searched. If no current library entry exists in the library list, QGPL is used.
- *USRLIBL
- If a current library entry exists in the library list for the current thread, the current library and the libraries in the user portion of the library list are searched. If there is no current library entry, only the libraries in the user portion of the library list are searched.
- *ALL
- All libraries in the system, including QSYS, are searched.
- *ALLUSR
- All user libraries are searched. All libraries with names that do not begin with the letter Q are searched except for the following:
#CGULIB #DSULIB #SEULIB
#COBLIB #RPGLIB
#DFULIB #SDALIB
Although the following Qxxx libraries are provided by IBM, they typically contain user data that changes frequently. Therefore, these libraries are considered user libraries and are also searched:
QDSNX QRCLxxxxx QUSRIJS QUSRVxRxMx
QGPL QSRVAGT QUSRINFSKR
QGPL38 QSYS2 QUSRNOTES
QMGTC QSYS2xxxxx QUSROND
QMGTC2 QS36F QUSRPOSGS
QMPGDATA QUSER38 QUSRPOSSA
QMQMDATA QUSRADSM QUSRPYMSVR
QMQMPROC QUSRBRM QUSRRDARS
QPFRDATA QUSRDIRCL QUSRSYS
QRCL QUSRDIRDB QUSRVI
- 'xxxxx' is the number of a primary auxiliary storage pool (ASP).
- A different library name, in the format QUSRVxRxMx, can be created by the user for each previous release supported by IBM to contain any user commands to be compiled in a CL program for the previous release. For the QUSRVxRxMx user library, VxRxMx is the version, release, and modification level of a previous release that IBM continues to support.