|
Robert,
If your programs are running in the default activation group, you use
RCLRSC to close their files. Unfortunately, it's not a very
fine-grained command, it'll close everything at/above the call stack
level you provide.
If they are ILE programs, then you use RCLACTGRP to reclaim the
activation group that closes the files. You can have finer-grained
control here simply by running different programs in different
activation groups.
Note that these commands do more than just close the files. They also
remove the program activations. This is actually very important.
Remember, a file open involves data structures and other memory
constructs inside a program. If you closed the file in the database
without also removing the program from memory, the program would go
haywire the next time it tried to use the file. So you really have to
either close the file from inside the program itself (via the CLOSE
opcode or whatever.) or you need to close it at the same time that you
remove the program activation. Anything else would cause "unpredictable
results."
On 3/15/2010 11:38 AM, Robert J. Mullis wrote:
I have an RPG program that calls numerous older programs. Some of theseolder programs leave database files open. When exiting the main program, I
would like to check for any files that are left open and close them.
files, but I haven't been to find a way to close them. CLOF only works if
I have a program that calls API QDMLOPNF and gives me a list of open
the file has been opened via an OPNQRYF or OPNDBF command. The RPG CLOSE
opcode will not work, because it only works on files that are in the F-specs
of the program that is currently running.
Does anyone know of another way (or API) to force the files closed?
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
As an Amazon Associate we earn from qualifying purchases.
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.