|
Property |
Value |
|---|---|
|
Kind |
Client library or connection library |
|
Type |
Mnemonic |
|
Read |
Anytime |
|
Write |
Client libraries: While not linked Connection libraries: While no connections are linked |
|
Default |
BYTITLE, except in some LINKLIBRARY requests affecting connection libraries; see following discussion |
Explanation
The LIBACCESS library attribute specifies the method the linking library uses to identify the library being linked to. The linking library is either a client library or else a connection library that is acting as the requesting side in a linkage attempt.
LIBACCESS has one of the following mnemonic values: BYFUNCTION, BYINITIATOR, or BYTITLE. The following are the effects of these values:
-
The FUNCTIONNAME library attribute specifies the library being linked to. The value of the TITLE library attribute is ignored.
-
This value has meaning only when preceded by one of the following activities:
-
The originating library uses a server library linkage mechanism to link a library, which becomes the initiating process.
-
The originating library initiates a dependent process, which becomes the initiating process.
-
The originating library initiates a link to a connection library through a client library declaration. The connection library contains a local client library declaration, which is used by the initiating process.
The BYINITIATOR value causes the initiating process to link to the originating library. When the BYINITIATOR value is used, the values of the FUNCTIONNAME and TITLE library attributes are ignored.
Note: If the process was initiated by the library linkage mechanism, the BYINITIATOR value can be used only while the original linkage exists. If the initiating library delinks from the process, the process uses the BYINITIATOR value, and the WAITFORFILE option is set, the system suspends the process with the message BYINITIATOR IS SPECIFIED, BUT THE INITIATOR IS NOT A LIBRARY
The operator can use the FA (File Attributes) system command to specify the location of the appropriate library, or use the DS (Discontinue) system command to terminate the program.
-
-
The TITLE library attribute specifies the library being linked to. The value of the FUNCTIONNAME library attribute is ignored.
Connection Libraries
The LIBACCESS attribute affects the entire connection library. To link the various connections to different library programs, you can use different implicit settings for the LIBACCESS attribute in each LINKLIBRARY request. If a TITLE is specified in the request, a LIBACCESS value of BYTITLE is assumed. If a FUNCTIONNAME is specified in the request, a LIBACCESS value of BYFUNCTION is assumed. For example, the following ALGOL statements link connections 0 and 1 of connection library CL1 to different programs, using different values of LIBACCESS:
CLTYPE LIBRARY CL1 (INTERFACENAME = "CLF.", CONNECTIONS = 2); REPLACE TITL BY "OBJECT/DELTA ON DISK."; RSLT := LINKLIBRARY (CL1[0], TITLE = TITL); REPLACE FNAME BY "GAMMA."; RSLT := LINKLIBRARY (CL1[1], FUNCTIONANME = FNAME);
To complete the linkage, the requesting connection library and the responding connection library must have matching INTERFACENAME attribute values.
If the library being linked to is a connection library, then the INTERFACENAME library attribute also plays an essential role in the linkage attempt, regardless of the value of the LIBACCESS library attribute. Refer to INTERFACENAME earlier in this section.
Direct Library Linkages
The LIBACCESS library attribute has no effect when direct library linkage is used. Refer to Directly Linking to Server Libraries and Directly Linking Connection Libraries earlier in this section.

