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



While it's true that using a special value for the library, such as *ALL,
*ALLUSR, *LIBL, or *USRLIBL will most likely hit the size limit of a user
space, the OP was referring to one library, and it seems that everyone else,
including you, were as well. This is why my post was limited to that.

The best way IMO to handle using any of the special values for processing
multiple libraries is to use two user spaces. One to get a list of matching
libraries, and one to get a list of objects for each library, one library at
a time. I use this approach in a utility program to get the list, and then
add an entry to a user index for each object. My program then returns a
variable chunk of the static list to the caller. The caller can process
those object entries and then call my program to get the next chunk of the
static list (with an option to force the list to be rebuilt). It works very
well and it's fast. It also assigns a list ID so that multiple lists can be
generated.

By the way, IBM's documentation for QUSLOBJ does not indicate that generic
names are allowed for the library name. Because it does not say that it is
allowed, I've never tried to use generic names for the library list with
that API. The approach I mentioned above does allow generic library names
because I use QUSLOBJ to get the list of library names that match the
library (specific, generic, or special value) requested.

The save/restore limit to which I was referring is regarding the number of
objects in a library, not the total number of objects in all libraries in
one save or restore request. After all, that is the point of this topic. I
mentioned it because even though you can have up to "approximately 360,000"
objects in a library, you might not be able to save the library if the
number of internal objects exceeds the number allowed for a save and that
limit seems to be lower than "approximately 360,000". Remember that many
objects, especially physical files, consist of multiple internal objects,
all of which count toward the total.


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Dennis
Sent: Tuesday, September 20, 2011 05:12
To: RPG programming on the IBM i / System i
Subject: RE: Using QUSLOBJ API

That's true as far as it goes, but seems to assume there's only one library
of interest per call to QUSLOBJ. What about all objects in library *ALLUSR,
or (gasp) *ALL? Even SAVRST has no problem with such lists (since it just
streams through the libraries one at a time. But a call to QUSLOBJ with
generic library name can easily run into these limits.
++
Dennis
++
"I have found the best way to give advice to your children is to find out
what they want and then advise them to do it."
-- Harry S Truman



Sent from my Galaxy tablet phone. Please excuse my brevity.
For any grammatic/spelling errors, there is no excuse.
++


"Robert Houts" <rshouts@xxxxxxxxx> wrote:

You won't have to worry any time soon, because according to IBM's
maximum capacities documents the limit for the number of objects in a
library from
7.1 back to at least V4R5 (I didn't check back further) is
"Approximately 360,000". Also, it seems that the save/restore limits
further restrict that.



-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Dennis
Sent: Monday, September 19, 2011 09:10
To: RPG programming on the IBM i / System i
Subject: Re: Using QUSLOBJ API

Oh, good point, Vern. Luckily, I have all my personal bank account
information stored in one massive file member - rather than spread
about in emulation of the real world - so I think the number is fairly
safe. :)
++
Dennis
++
"If all economists were laid end to end, they would not reach a
conclusion."
-- George Bernard Shaw



Sent from my Galaxy tablet phone. Please excuse my brevity.
For any grammatic/spelling errors, there is no excuse.
++


"Vern Hamberg" <vhamberg@xxxxxxxxxxx> wrote:

I don't know, Dennis, gotta be careful - you'll run out of space when
you have more than 559,240 objects in a library!!

;-)

Vern

On 9/19/2011 5:48 AM, Dennis Lovelady wrote:
What return format are you using? My solution is to use QUSLOBJ to
retrieve
only the minimal information (OBJD0100)... and then use QUSROBJD for
the
details. I have not run into space issues in this manner.

Dennis Lovelady
http://www.linkedin.com/in/dennislovelady
--
We could certainly slow the aging process down if it had to work its
way
through Congress.
-- Will Rogers


To the list,
I am trying to use the QUSLOBJ API and am only getting a "partial"
list on
the
retrievel of a library that contains almost 42,000 objects. When I
changed
the program from looking for *ALL object types to perform a loop
(selecting a
single object type one at a time), I still do not get all the *PGM
objects
which number over 30,000. The "magic" number where the job stops
is
29,119
objects.

Doe this API have a "continuation handle" or does anyone have a
better
idea on
retrieving all the objects - I am using the 0600 format to retrieve
the
data.
I believe that I am creating an extendable user space.

TIA...
Eric
--


---wlteihnssf---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.