× 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.






I had never even heard of SETOBJACC before.  I went through the help on it
and this is probably what I am looking for.  This is probably how FNDSTRPDM
"caches" members in main memory.  I wonder when these get purged from main
memory.  It is cached for some time and then you have to start all over the
next day.  Should I use the same storage pool that FNDSTRPDM is already
using?  I'm not sure how to find out what storage pool FNDSTRPDM uses.  Can
we see the objects stored in main memory?  I would probably run the
SETOBJACC by member but I am not sure whether I should use the *BASE or
*SHRPOOLn and what pool identifier.
>> Thing is, you need enough space that is not needed for running
processes.
Are you saying that I could cause other jobs to slow down or possibly
abort?  If space ran out, would old storage purge as newer storage gets
added?  I want to make sure I avoid slowing down any important jobs since I
would be adding members in main memory that may never take advantage of
being in main memory.  Does adding objects to main memory decrease
available storage?

The reference to a memory location in a job probably explains why a newer
version of the program would not take effect until it is run again.
I'm not sure if I would be decreasing available storage for other jobs.
I think you are probably right about the read bringing in the member for
small members.
I guess the question about whether I am crazy or not is still open.  :)

Thanks,
Craig Strong

** Vern wrote:
Craig, have you looked at the SETOBJACC command? It is the fastest way to
get objects into main memory. You can (need to?) specify members for files.
Your loop could use this on the members listed.

Look at the help text on this command, esp. the opening section, for hints
on making these things persistent in main memory. Thing is, you need enough
space that is not needed for running processes.

The replaced object thing is a little different - there's probably some
reference to a memory location in your job, and if a program is in use
while it is recreated, that reference is changed to the copy in QRPLOBJ.

Once an object is in memory, it is available to all running processes, even
if in a different pool.

If the member is small enough (probably < 4k), 1 read is enough to bring it
all in. This depends on things like expert cache, which can use larger IO
block sizes for sequential file access, which could be the pattern for
source members. But the normal block size is one memory page, or 4096
bytes.

HTH

Vern

BTW, you still might be crazy. Just because a person is paranoid, it
doesn't mean they're not really after you.

At 11:34 AM 10/10/2003 -0500, you wrote:
-snip-

If you open each member in an RPG program, do a single read, and
close, I think that places the entire member in memory.


-snip-

Every morning a system scan is initiated in batch that basically does a
DSPFD for all common source physical files to outfiles.  I was thinking of
taking these resulting outfiles and submitting jobs to batch for each
library processed for each source file.


-snip-

Should I do the open, 1 read, close of every source member in batch jobs (1
library per job)?  Any system issues that might come up in doing this?
Am I correct in thinking of this as members stored in memory?  Is this the
same thing as when a program is replaced while someone is using it and they
are running the version still stored in memory until they exit?
Am I crazy?

Thanks,
Craig Strong


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.