× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 08-Aug-2016 13:50 -0500, Rob Berendt wrote:
Again, the "safest" way to clear them is with DLTPTF.

Or more simply, the /correct/ way to delete PTF Save Files is with the Delete PTF (DLTPTF) command. Some links to some past discussion:

[http://archive.midrange.com/midrange-l/201212/msg01145.html]
Subject: Re: installing ptf cume packages via *SERVICE/SAVF

[http://archive.midrange.com/midrange-l/201308/msg01071.html]
Subject: Re: Cleanup PTFs downloaded to *SERVICE

[http://archive.midrange.com/midrange-l/201004/msg00864.html]
Subject: Re: PTF Savefile

[http://archive.midrange.com/midrange-l/201308/msg00953.html]
Subject: Re: PTF install questions


Let me try to explain why.
Let's pretend you do a
DSPOBJD OBJ(qcnteddm) OBJTYPE(*PGM) DETAIL(*SERVICE)
and you do not see any ptf on it.
So (on 7.3) you order ptf SI59632.
When you temp apply that PTF it will save the original QCNTEDDM into
another save file. Let's say SH12345678 for example. Then it will
restore the new QCNTEDDM from save file QSI59632.

Unless the PTF feature had changed drastically, that description of what transpires for typical PTF apply processing for any *PGM objects is hokum.

The old object that is to be PTFed\replaced with a newer copy [that had been restored from the PTF save file, then renamed, and finally moved into the product library during Load PTF (LODPTF) processing] is essentially just renamed [again] to effect the Apply PTF (APYPTF) processing; the standard effect of APYPTF will *not* be to perform any SAVxxx processing [to make a backup copy] of the PTFed objects, as the /backup copy/ simply resides on disk with a different name just like the down-level object resided on disk with an alternative name.

The process did change within the past several releases to stop using library QRPLOBJ in which to place objects that are possibly\potentially still in-use pending an IPL; changed to instead use the libraries QPTFOBJ1 and QPTFOBJ2. But the /backup/ copies of a program still would reside as the object by another name, not as an object saved to a save file.

If you remove (not delete) PTF SI59632 it will restore QCNTEDDM from
SH12345678 to go back to the old version.
Now, if you permanently apply SI59632 it will delete SH12345678 and
that bridge is burned.

While there are some object[-type]s that will be shipped in a save file [e.g. non-/QSYS.LIB objects per inability to include both an effective SAV and effective SAVOBJ in one Save File object], delivered by having been saved into the PTF save file itself, I am confident such save file names will have a prefix such as QPZ1 or QPZ2. And the loss of anything that might have been saved previously into a QPZ save file per the permanent-apply action, is nothing different than the loss of any other PTF temporary objects; i.e. the /program-temporary-fix/ had since been made permanent, so there was no reason to maintain what was needed only /temporarily/.

That a Save File previously restored from a PTF save file might become effectively /orphaned/ due to the deletion of the PTF save file itself [per Delete File (DLTF)] should not be of great consequence [beyond the storage taken for not having been deleted by Delete PTF (DLTPTF)], because the object-naming for the temporary save file should make the object eligible for CLEANUP processing.

As for the possibility of data loss from deleting the PTF save files vs using DLTPTF, I am not so sure there is much of a concern; at least not so much for the permanent-apply scenario. For a scenario of a temporarily applied PTF, in which the _PTF save file_ is deleted, also should not be a concern. But if any _save files as PTF objects_ are deleted, rather than the _PTF save files_ themselves, then that could be problematic, if indeed those save files were used to make a backup of an older version of the object; however, I am thinking that those save-file objects would reside in the *product library*, not reside in QGPL where the PTF save files [that were registered with *SERVICE] would reside.? Thus, I do not see there should ever by any /safety/ issue with regard to data-loss when deleting actual PTF save files by means other than the DLTPTF.


What this is telling you is:
- Regularly permanently apply your PTF's to save space by removing
the backup copies.

While that action moves the renamed objects into another library, until an IPL, the storage is not reclaimed. And from what I recall, a PTF that arrived as a save file, registered with *SERVICE, does not get deleted with a perm-apply; that still awaits DLTPTF.?

- Do not clean up the backup copies yourself or you've screwed up
your ability to RMVPTF.

If only deleting save files that were registered with *SERVICE and by naming should be the various QS_##### [and QM_#####] *FILE objects with attribute=SAVF in library QGPL, then as alluded earlier, I am not sure there would be any harmful effect with [the ability to or] the action of Remove PTF (RMVPTF). The conspicuous problem with using DLTF vs DLTPTF, is that the PTFs that had been registered with *SERVICE would not get properly de-registered from *SERVICE, and thus remnants of their existence may appear in Display PTF (DSPPTF) output or in output of any PTF-category APIs.

- Do the DLTPTF regularly to clean up the save files containing the
'new copies'.

True enough, if those PTF save files are not being maintained for other purposes; e.g. to be sent to other systems.

Although I was under the impression that most installations would have PTF save files only rarely, primarily existing for the purpose of resolving the special value *SERVICE and which generally as the effect of having arrived via Send PTF Order (SNDPTFORD) to obtain specific fixes that were not otherwise obtained as images; i.e. loading from images is more typical than loading from *SERVICE? As apparently is the case for the OP. The other typical purpose, being to maintain a copy of PTFs [on a central system], for distribution to other systems.

- DLTPTF will also remove the members held in
WRKMBRPDM FILE(QGPL/QAPZCOVER)
or
WRKLNK OBJ('/QSYS.LIB/QGPL.LIB/QAPZCOVER.FILE/*')


As noted already in a prior reply, I expect the OP might want to invoke the following, as probable recovery; a bit less aggressive than the PTF(*ALL) in the first followup reply to the OP:

DLTPTF PTF(*SAVFONLY) LICPGM(*ALL)
RLS(*ALL) DLTDUPPTF(*YES)


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.