×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
On 20-Aug-2014 10:45 -0500, Roger Harman wrote:
I have some service programs to retrieve various elements from
several master files.
The files are USROPN and there is a SrvPgm_Init() routine called to
open them. Once open, they don't get closed until the SrvPgm_Close()
routine gets called. Both calls are ONLY in the main report program.
But, somehow, I have files getting closed between calls to the
SrvPgm_GetSomeData() calls. It's happening in two different service
programs. %status returns 1211 if I check it.
I am baffled. It looks like it may be an activation group boundary
issue.
Service programs are ActGrp(*caller) and all the programs (CLLE &
RPGLE) in the job stream have the same defined activation group.
V6R1.
Suggestions?
A job trace will show the close, and thus what led to the close.
Although with status 1121, I wonder if the condition was diagnosed by
CPF5114 "File must be open before input or output is done.", for which
the possible implication is also that the file was never opened.
IIRC had the file(s) been closed due to a prior I/O error, i.e. per
an abnormal close, the error would be different than the 1121; instead
the prior Data Management (DM) error would imply the ODP is in-error per
msg CPF5129 "I/O is not allowed because the ... member ... is in error."
Though maybe the RPG run-time returns the same status irrespective
the prior Data Management error that might have been logged; was there
anything in the joblog prior to that status being raised, indicating an
I/O error or open error [presumably, already the joblog was reviewed for
a message indicating that the file was closed].?
kwd: msg RNX1211 "I/O operation was applied to closed file &7."
In many cases for which there are few close requests, I just use
debug and add a breakpoint on instruction '/1' of the OS program [if an
OPM program] that processes the device-specific close [e.g. QDBCLOSE],
and then check the stack to determine what requested\effected the close.
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.