|
Scott, I use a combination of your approach, and Bucks. Each SrvPgm contains an initialization and a clean-up procedure. The file open logic is contained in the initialization procedure, and the close logic is in the clean-up procedure. Both are exported, though rarely used by the caller. Every one of the "GetCustName" type procs makes a call to the initialization procedure before doing anything else, in order to make sure that the required resources are available. However, none of them call the clean-up procedure. They leave all resources open when they return. How the resources are closed depends upon the type of caller. If the caller is designed to run in a named or *NEW activation group, then I rely upon the destruction of the activation group to close the resources. However, if the caller runs in the *DFT ag, or QILE, then I handle resource clean up within the program itself. Regards, John Taylor Canada ----- Original Message ----- From: "Scott Mildenberger" <Smildenber@Washcorp.com> To: <RPG400-L@midrange.com> Sent: Friday, August 25, 2000 15:56 Subject: RE: explicit close > Buck, > > I know your response said typical I/O functions but what is your > opinion on functions such as GetCustName or ValidStation that aren't > obviously doing any I/O? The user of the function doesn't really know if > files are open/closed (nor should they care). I tend to take the approach > that the files used in a service program are USROPN and they are opened by > the first procedure that uses them. I usually just leave the file open > unless it is a file/procedure that isn't typically used very often. I know > this can leave a number of files open in interactive jobs but I haven't > noticed any problems with this, although that doesn't mean there aren't any. > Thoughts anyone. > > Scott Mildenberger > > > -----Original Message----- > > From: Buck Calabro [SMTP:buck.calabro@aptissoftware.com] > > Sent: Friday, August 25, 2000 2:36 PM > > To: rpg400-l@midrange.com > > Subject: RE: explicit close > > > > I would say that typical I/O functions have at least 3 sub-functions: > > Open, > > Get (or Put) and Close. This way the caller is in control and there is no > > "secret" open or "cleanup" done by the I/O function. Lurkers should take > > the opportunity to add their comments to this - especially contradictory > > ones! There is no one "right" way, there are only better or worse choices > > for your application. The more ideas you hear about, the better you can > > decide for yourself. > > > > > +--- > | This is the RPG/400 Mailing List! > | To submit a new message, send your mail to RPG400-L@midrange.com. > | To subscribe to this list send email to RPG400-L-SUB@midrange.com. > | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. > | Questions should be directed to the list owner/operator: david@midrange.com > +--- > +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
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.