LIBACCESS

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:

  • BYFUNCTION

    The FUNCTIONNAME library attribute specifies the library being linked to. The value of the TITLE library attribute is ignored.

  • BYINITIATOR

    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.

  • BYTITLE

    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.