Newsletters   Subscriptions  Forums  Store   Career  Media Kit  About Us  Contact  Search   Home 
fhg
Volume 5, Number 21 -- May 25, 2005

File Members and the Library List


by Dominic Lefevre


What happens when an RPG or COBOL program opens a file? For one thing, the system has to find the file. And where does it look for the file? Everyone knows the answer to that question. The system searches the libraries in the library list, beginning with the system library list, proceeding through the product libraries, the current library, and finally the user libraries. The system selects the first file it finds of the desired name, right? Not necessarily.

The exception comes when the system is searching for a certain file member. If the system does not find the desired file member in a file of the desired name, the system will continue to search the libraries in the library list.

Here's a little test you can run for yourself. Create two files of the same name in different libraries. I suggest you use work libraries. You can use QTEMP for one of them. Give the members different names.



crtpf qtemp/x rcdlen(48) mbr(one) 
crtpf mylib/x rcdlen(48) mbr(two)

Use a database utility, such as DFU, to load one record into each of the files. I suggest you key ONE in member ONE and TWO in member TWO.

Use the Display Physical File Member (DSPPFM) command to display the files.

dsppfm x one
dsppfm x two

You will see that the system will find the right member, no matter the order of the libraries in the library list.

Source physical files also work well for this test. Give it a try with files of the same name, such as QRPGSRC, in different libraries.

This same behavior holds true with RPG (and, I assume, COBOL) programs. RPG normally opens the first member of a file, but if you override a file to a certain member, or you add the EXTFILE and EXTMBR keywords in RPG F specs, the system will continue to scan through the libraries in the library list until it finds a file member of the proper name.


The system is not consistent, however. The Run Query command chokes if it does not find the desired member in the first instance of the desired file.

runqry qry(*none) qryfile((x two))  
runqry qry(*none) qryfile((x one))  

One of the two commands generates message QRY1612 (Member ONE not in file X in MYLIB).

Sponsored By
ITERA

Researching High Availability Solutions?

View the contents of this valuable iSeries high availability resource portal that includes HA white papers, archived webinars, case studies and more.

Learn essential information about iSeries high availability before you implement this powerful business-continuity technology.

Click here for instant access.


Technical Editors: Howard Arner, Joe Hertvik, Ted Holt,
Shannon O'Donnell, Kevin Vandever
Contributing Technical Editors: Joel Cochran, Wayne O. Evans, Raymond Everhart,
Bruce Guetzkow, Marc Logemann, David Morris
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.


THIS ISSUE
SPONSORED BY:

ProData Computer Svcs
iTera
WorksRight Software


Four Hundred Guru

BACK ISSUES

TABLE OF
CONTENTS
Creating Pivot Tables on the iSeries

File Members and the Library List

Admin Alert: Configuring Windows Desktops to Use SSO


The Four Hundred
IBM Pilots Aggressive Middleware Pricing on i5 520s

PeopleSoft Founder Duffield Readies New ERP Software

Oracle Apps on the iSeries: It Depends on What Your Definition of "Support" Is

As I See It: Chain of Command

Four Hundred Stuff
AppWorx Brings Job Scheduler to OS/400

Looksoftware Shakes Up Product Line

CCSS Boosts Problem Resolution in QMessage Monitor

WRQ Improves Security of Terminal Emulation Suite

Four Hundred Monitor


Copyright © 1996-2008 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc. (formerly Midrange Server), 50 Park Terrace East, Suite 8F, New York, NY 10034
Privacy Statement