× 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 07-Jun-2010 15:37, Mark S. Waterbury wrote:
Well, since you asked ...

The "event" that is "triggered" is to issue the MI instruction
SETACCST (Set Access State) ... with the "bring" option bit set
in the template. See here for more details:

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzatk/SETACST.htm

There is also the QDBBRCDS API -- to "bring" a set of records
into real main storage" -- see here:

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/apis/qdbbrcds.htm

Perhaps someone with more "internals" knowledge than I (like
Bruce Vining or Chuck Pence) could comment on the "pros and cons"
of using QDBBRCDS versus SETOBJACC versus the MI SETACCST
instruction.


The SETOBJACC command synchronously /brings/ data into the specified memory pool, the _entire dataspace_, and optionally the dataspace index. The command also supports specification of an LF in order to access all of the underlying data member(s) and its access path(s). Good for each of random, direct, and sequential access; especially if processing the majority of the rows or index entries. Ideally used only when the assigned pool is not shared; dedicated only to a known amount of physical storage, for which the pool configuration accommodates the full amount.

The database API asynchronously /brings/ into the memory pool assigned to the requesting job, only the physical data pages for the specified RRNs. The API allows specifying only a specific database physical file member. If you know you are going to process only the rows appended at the end of the dataspace for example, then use this API to bring that specific portion of the dataspace\data into memory; done in the hope that the /bring/ completes before actual physical data access, to avoid faulting the data into memory. Best for use with direct or sequential access, where the former implies which RRN to be accessed is\are known, whereas the latter implies either which or /near which/ RRNs are of interest to be accessed is either known or can be predicted.

I do not recall the implementation of, nor the requirements for origin of, the Bring Database Records (QDBBRCDS) API. And I never had to provide a fix for that code :-) such that I may have had to learn more. The documentation is sorely lacking if not also possibly misleading. Minimally, for lack of mention of deleted records and a definition of /invalid/ which may or may not include a row which is the RRN of a deleted record. For example: "Invalid relative record numbers in the array are ignored." but "All relative record numbers prior to the invalid relative record number in the array are processed." If invalid RRN are ignored, then why would only *prior* values /in the array/ are processed? As if the RRNs in the array could only be specified ascending [not stated] and only those RRN exceeding the highest valid RRN are invalid.? Or do they mean any /lower value RRNs/ will still be processed?

Regards, Chuck

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.