Yeah, this is a good technique. Throw that in a service program and you're golden.
Creating or populating a data area is a horrible way to do this. It's just as bad as setting an "active" flag in a file. Ugh! Any abend and you're screwed.
If you MUST use a data area, just lock it exclusive. Don't deal with existence or content. When the job ends (however it ends), the lock will disappear.
Roger Harman
COMMON Certified Application Developer - ILE RPG on IBM i on Power
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> on behalf of JRusling@xxxxxxxxxxx <JRusling@xxxxxxxxxxx>
Sent: Monday, January 28, 2019 1:16 PM
To: RPG programming on the IBM i(AS/400 and iSeries)
Subject: RE: How can i test, from rpg, if a display file is in use?
Ya know, in the back of my mind, a voice was saying to me... "i'll be
there's one of those sql functions/thing-a-ma-bobs to get that".
Thanks Kevin. I'll be giving that a try.
John
<snip>
Use the OBJECT_LOCK_INFO view.
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_73/rzajq/rzajqviewobjlockinfo.htm
.
If I run this for a display file that I am using.
SELECT LOCK_STATE,
LOCK_STATUS,
LOCK_SCOPE,
JOB_NAME,
OBJECT_TYPE
FROM QSYS2.OBJECT_LOCK_INFO
WHERE SYSTEM_OBJECT_NAME = 'IFSHCSURFM'
AND SYSTEM_OBJECT_SCHEMA = 'DRSUP';
I get this.
*SHRNUPHELDJOB679042/KEVIN/MN207A*FILE
If no one is in the file I get no records.
</snip>
<br />
The information in this email is confidential and may be legally privileged.
It is intended solely for the addressee. Access to this email by anyone else is
unauthorized. If you are not the intended recipient, any disclosure, copying,
distribution or any action taken or omitted to be taken in reliance on it, is
prohibited and may be unlawful.
As an Amazon Associate we earn from qualifying purchases.