Client Library Declarations
In most languages, the client program must include explicit declarations of all client libraries and library objects used by the program. A client library declaration specifies the identifier by which the library is known throughout the client program. A client library declaration can also include library attribute assignments.
Library Attributes
Library attributes should not be confused with task attributes or file attributes. Library attributes provide information that help monitor and control libraries.
Changes to Library Attributes
The client process can change library attribute values repeatedly, if the client library is not currently linked to a server library. The operating system ignores any changes made to the attributes of a client library while the client library is linked to the server library. The exception to this rule is the AUTOLINK attribute, which can be changed while the client library is linked to the server library.
COBOL74 Client Libraries
In COBOL74, client programs do not include library declarations. However, this language does allow you to assign library attributes to a client library.
CHANGE Attribute Assignment
Unlike most library attributes, the CHANGE attribute can be assigned in the client library program, the server library program, or both.
The following paragraphs briefly explain the use of library attributes related to client libraries.
LIBACCESS, TITLE, and FUNCTIONNAME Library Attributes
A client process uses the LIBACCESS attribute of the client library to specify how to select the server library. The possible values are BYTITLE, BYFUNCTION, and BYINITIATOR.
If LIBACCESS = BYTITLE, then the server library program is selected by its title. The client process assigns the library code file title to the TITLE attribute of the client library. No value is assigned to the FUNCTIONNAME library attribute.
If LIBACCESS = BYFUNCTION, then the server library program is selected by its function name, which is defined and mapped to a library code file beforehand by the SL (Support Library) system command. The client process assigns the desired function name to the FUNCTIONNAME attribute of the client library. No value is assigned to the TITLE library attribute.
If LIBACCESS = BYINITIATOR, then the client process must be either a task initiated by a library, or a library initiated by the library linkage mechanism after another library invokes it. In either case, BYINITIATOR causes the client process to link to the library that originated the client process. No value is assigned to the FUNCTIONNAME or TITLE attributes of the client library.
LIBPARAMETER Library Attribute
The client process can use the LIBPARAMETER library attribute for cases where the server library provides objects dynamically. The LIBPARAMETER value can include application-defined information to help the server library decide to which secondary library to link. For more information, refer to Dynamic Provision later in this section.
If the client library is linking to a connection library instead of to a server library, the client process can use the LIBPARAMETER attribute to pass information to the APPROVAL procedure. Refer to description of the APPROVAL library attribute under APPROVAL later in this section.
AUTOLINK Library Attribute
The client process can use the AUTOLINK library attribute to specify whether this client library can be linked implicitly to the server library. For more information, refer to Linking to Server Libraries.
INTERFACENAME Library Attribute
If the client library links to a connection library instead of a server library, the client process assigns an INTERFACENAME attribute to the client library. Refer to Linking a Client Library to a Connection Library later in this section.
For detailed descriptions of these and other library attributes, refer to Using Library Attributes later in this section.

