On 04-Mar-2015 13:21 -0600, David Gibbs wrote:
I found something interesting on my 7.1 system the other day.
I was doing some analysis of command objects in QSYS, using the
QCDRCMDI API, and encountered a command that gave an error.
When I ran the QCDRCMDI api on the ADDBLDOPTE command, I got a
CPF9810 indicating that the QBLDSYS library didn't exist.
So I looked in QSYS and there is a *CMD object for ADDBLDOPTE ...
but it appears to be a proxy for a command of the same name in
QBLDSYS. QBLDSYS, however, does not exist on my system.
  The library name QBLDSYS is an IBM-internal library that provides the 
capability to /build/ the OS and LPPs; there should be an expectation, 
barring any radically daft changes, that a library by that name would 
never exist on a customer system [except under the purview of IBM dev 
and\or support such that the library were scheduled and verified to be 
deleted with the understanding that cust was expected never to B&R the 
contents].
  Any direct reference to that library with implied functionality is 
either an /escapee/ from the lab and thus a defect [¿accidentally 
shipped with the OS on media, perhaps in a TR or a re-save of the OS 
that was built incorrectly before being saved], or was delivered as part 
of a[n effective] TestFix or some other support purpose for which IBM 
had at one time restored or otherwise /installed/ the library on that 
system [e.g. from a save file downloaded from IBM service\support].  The 
possibility exists that the library was legitimately installed|restored 
on the system and the proxy command was created, and the library was 
properly deleted according to instructions, but someone overlooked the 
prior Create Proxy Command (CRTPRXCMD) thus failed to account for the 
negative effect by failing to delete that *CMD object as well.
  A proxy command that refers to the library name is a direct [implied 
functional] reference, whereas a source file library name associated 
with an object [in the *SERVICE OIR] would be merely a historical 
reference and unlikely an indication of a defect.  Notably, the "created 
by", "restore date", and "creation date" could be very telling.
 ----------
 Target command . . . . . . . . . . . . : ADDBLDOPTE
 Library . . . . . . . . . . . . . . : QBLDSYS
 Text . . . . . . . . . . . . . . . . . :
 Current proxy chain . . . . . . . . . : QSYS/ADDBLDOPTE
    QBLDSYS/ADDBLDOPTE
 ----------
  Both the naming using the mnemonic BLD for /build/ as a noun, and the 
likely usage of mnemonic OPT for the noun /option/, the command name 
appears likely to be an IBM-internal "build command".
  Some information about the object, the spooled DETAIL(*FULL) and 
DETAIL(*SERVICE) of Display Object Description (DSPOBJD), and possibly 
the Dump Object (DMPOBJ) would reveal something more about the 
provenance of the Command object with the .
Anyone now why there would be a proxy command but no target command?
  Given the object is not likely /installed/ intentionally, if the 
object appears incorrectly with the OS, then the effect is due to the 
accidental delivery of the *CMD object in QSYS.  If the object instead 
arrived later, then either the object was restored and\or moved into 
QSYS, and the target library also may have existed at one time thus the 
DLTLIB gave rise to the condition or the library never existed and the 
restored object presumably logged effectively the same CPF9810 at 
restore but as a diagnostic [i.e. I am doubtful there is a hard 
restriction to restore a proxy without a valid+resolvable chain.
A bit more analysis returned a bunch more commands in a similar
state. Most are pointing to QBLDSYS. Others are pointing to QSSP (we
don't have the S/36 env installed, so that can 'kind of' be
explained).
  And those additional commands are?  Again, obtain and review the 
Display Object Description (DSPOBJD) [perhaps obtain also DMPOBJ] as 
means to possibly track-back to the origin; if the history and\or 
auditing goes back far enough and the restore-date is the origin, then 
the restore history\audit-info would show even more.
  The OPTION(5) of the OS delivers the S/36EE, and often rather than 
properly effecting Delete Licensed Program (DLTLICPGM) [as often was 
offered even here on these fora], many will simply issue Delete Library 
(DLTLIB) against products\options and thus the LicPgm install-exit 
routines that should remove the associated objects that were created 
during Restore Licensed Program (RSTLICPGM) would not be performed thus 
leaving stranded those objects from the since-missing product [library] :-(
As an Amazon Associate we earn from qualifying purchases.