What Program Uses That File?
July 13, 2005 Hey, Ted
We would like to delete a logical file that we no longer need. We got a list of programs that used the file from our documentation tool and changed those programs to use a newer logical. However, the Display Object Description (DSPOBJD) command tells us that the file is still being used. How can we find the program or programs that are accessing the file?
–Bobby
I suggest you journal the physical file(s) over which the logical file is built. Specify OMTJRNE(*NONE), because you need the system to record opens and closes. The following commands create a journal and start journaling a file named MYFILE.
CRTJRNRCV JRNRCV(MYLIB/MYFILE0001) CRTJRN JRN(MYLIB/MYFILE) JRNRCV(MYLIB/MYFILE0001) STRJRNPF FILE(MYLIB/MYFILE) JRN(MYLIB/MYFILE) IMAGES(*BOTH) OMTJRNE(*NONE)
The Display Journal (DSPJRN) command will retrieve the logged opens of the file.
DSPJRN JRN(MYLIB/MYFILE) JRNCDE((F)) ENTTYP(OP)
The entry-specific data of a logged open is defined as in the following table.
Positions |
Description |
1 – 10 |
File |
11 – 20 |
Library |
21 – 30 |
Member |
31 |
I=opened for input |
32 |
O=opened for output |
33 |
U=opened for update |
34 |
D=opened for delete |
You can use the Journal code finder to find the format of entry-specific data for journal codes.
DSPJRN’s entry details panel will show you the name of the program that opened the file, the job that opened the file, the time the file was opened, and other pertinent information.
You may be able to find the open of the logical file by viewing the entries, but if there are a lot of opens, you might prefer to copy the journal entries to a disk file and query them.
DSPJRN JRN(MYLIB/MYFILE) JRNCDE((F)) ENTTYP(OP) OUTPUT(*OUTFILE) OUTFILE (QTEMP/X)
Having said all that, it is still possible that you won’t find your answer. If the program that is opening the file is one of IBM‘s, such as SQL/400 or Query/400, you won’t see IBM’s program’s name, but a program of your own that is higher in the call stack. In that situation, maybe the other information will give you enough of a hint that you’ll be able to track down the culprit.
–Ted