|
Property |
Value |
|---|---|
|
Kind |
Client library or connection library |
|
Type |
EBCDIC string |
|
Read |
Anytime |
|
Write |
Client libraries: While not linked Connection libraries: While not ready and no connections are linked |
|
Default |
Library identifier, except in COBOL74; see following discussion |
Explanation
The INTNAME library attribute specifies the internal name for the library.
One use of the internal name is in assignments to the LIBRARY task attribute. You can use the LIBRARY task attribute to alter the behavior of client programs. For example, suppose a client program declares a library with an internal name of LIB1, a LIBACCESS value of BYTITLE, and a TITLE value of OBJECT/LIB1. When you run the client program, you can assign the LIBRARY task attribute a value of LIBRARY LIB1(TITLE =OBJECT/OTHERLIB). This has the effect of causing the client program to link to a different library than it otherwise would.
INTNAME also serves as the default value for the FUNCTIONNAME, INTERFACENAME, and TITLE attributes.
COBOL74 Considerations
Because libraries cannot be explicitly declared in COBOL74, the compiler constructs the default INTNAME for a library from the first reference to that library title in the client program. If the title includes multiple nodes separated by slashes (/), the INTNAME is formed from the final node of the title.
The first reference to the library title might be in the CALL statement that invokes the library, or in a CHANGE statement that assigns attributes to the library. If either of the following two statements is the first reference to a library in a COBOL74 client program, the library receives an INTNAME of LIB1:
CHANGE ATTRIBUTE FUNCTIONNAME OF “OBJECT/LIB1” TO “TESTSUPPORT.”. CALL “FACT IN OBJECT/LIB1” USING PARAM.
To prevent any two libraries in a COBOL74 program from receiving the same INTNAME, you should assign each library a TITLE attribute value that has a different value in the final node.

