× 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.



Is there a specific scenario of SAVLICPGM/RSTLICPGM pairing that is exhibiting rebuilds? If so, maybe we could review that over email, and post what we find afterward. Most difficulties with database files and LPPs are not with access paths, but instead with maintenance activity; both release upgrades, reinstalls, and PTFs.

The saving and restoring of licensed program products should be pretty much the same as for savobj and rstobj alwobjdif(*all). Those commands are what the LPP save & restore commands use [for /qsys.lib objects].

So basically it is a matter of ensuring that SAVOBJ and RSTOBJ of the DBF networks [e.g. saved by OBJ(*ALL) OBJTYPE(*FILE) from the LPP library] can be performed without access path rebuilds, during testing which mimics both the slip-install of the LPP and the scratch-install of the LPP. After the restore, verify by DSPFD that there are no /invalid/ access paths, and that DSPLOG QHST MSGID(CPF3100) since the start of the restore does not have any CPF3145 or CPF3146; and review any others... those two messages used to be the only two of interest, but I am not sure nowadays. This testing can be done with the SAVLICPGM & RSTLICPGM instead of SAVOBJ & RSTOBJ, perhaps only after working past any issues using SAVOBJ\RSTOBJ requests since that can be limited to testing with only the database files in the option.

There are a couple concerns for possible differences from SAVOBJ and RSTOBJ however. First, there is no ACCPTH() parameter on SAVLICPGM. I do not recall what it uses [though I believe ACCPTH(*YES)], and there is no doc on the command [reader comment time?]. You would need to confirm that the SAVLICPGM request explicitly always does ACCPTH(*YES) rather than defaulting to *SYSVAL, and if the latter, always be sure to set the system value before any SAVLICPGM request. Second, there is the possibility of exit programs during RSTLICPGM doing any sorts of things that could make the /restore/ do something way different than just a RSTOBJ, in either of the two standard scenarios: restore-over and scratch-restore of the objects in the LPP. Typically the pre-MRx restore effects the DLTF of the existing files, so that all restores of database *FILE will appear\function as a scratch restore; or where those objects also need to maintain private authorities, then RNMOBJ effected in pre-MRx restore and then GRTOBJAUT REFOBJ() in the post-MRx restore.

Note: A scratch install of the LPP means that the LPP does not exist when RSTLICPGM is performed; no relationship, necessarily, to an OS scratch install. I add this note because of the numerous times that the terminology has been misunderstood. Similarly when I say scratch restore, that has nothing to do with either scratch install, it refers to any restore where the object from media does not currently exist on the disk; such that the private authorities are also not restored [regardless that 6.1 changes the capabilities on that front, but not for xxxLICPGM].

Note: The alwobjdif should have since been changed in RSTLICPGM to name each allowed difference [i.e. name each special value separately, versus the single value *ALL], and then updated each release where another special value is added. However the parameter value almost surely remains *ALL, which is the worst option for database files. An improperly designed & coded LPP restore will often manifest increasing members and file objects as a result of cpi320a and cpi320b.

Regards, Chuck

Tom Liotta wrote:
CRPence wrote:

Of course either is acceptable as recovery for small amounts of rows, but for large number of files or files with many rows, the rebuilds are best avoided entirely, by ensuring that the saving and restoring of the access paths is the outcome as a normal course. Request the save, choose a restore option that enables restoring all access paths, and then verify none are invalid and none were rebuilt after the restore.

Chuck:

When the save is via SAVLICPGM and the restore is via RSTLICPGM, can you suggest a good way of "...ensuring that the saving and restoring of the access paths is the outcome as a normal course"?

Tom Liotta


As an Amazon Associate we earn from qualifying purchases.

This thread ...


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.