A library has a *SHRRD lock placed on it when a job has it in its library list.
You may not be authorized to the job holding the lock. Try this
1. Start an interactive job using a profile that the profile your utility is running under does not have *USE rights to.
2. Run WRKOBJLCK OBJ(QSYS) OBJTYPE(*LIB) OUTPUT(*PRINT) using a profile with *ALLOBJ authority.
3. Then run the same command using the profile your utility runs under.
Do both reports list the job from step 1?
From: MIDRANGE-L [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Steinmetz, Paul
Sent: Thursday, August 06, 2015 6:11 AM
To: 'Midrange Systems Technical Discussion'
Subject: Method to determine if a library is in use
I have a utility that checks if an app is use by doing a WRKOBJLCK OBJ(XXX) OBJTYPE(*LIB).
I recently had this fail.
One app addlible XXX.
Opens files in XXX
Execute a process, finish.
WRKOBJLCK OBJ(XXX) OBJTYPE(*LIB) shows no locks.
But within the XXX library, there were object locks remaining.
Never realized you could have object locks and the library containing the objects is no longer is the library list.
Searching for better method to determine object locks since WRKOBJLCK OBJ(XXX) OBJTYPE(*LIB) is no longer valid.
IBM i Systems Administrator
Pencor Services, Inc.
462 Delaware Ave
Palmerton Pa 18071