Using Libraries

Table of Contents

Introducing Libraries
Creating Server Library Programs
Exporting Objects
Freezing the Library
Controlling Server Library Sharing
Initiating Internal Server Library Processes
Using Server Library Objects
Local Objects in Server Libraries
Global Objects in Server Libraries
Exported Data in Server Libraries
Restrictions on OWN Objects in Server Libraries
Restrictions on COBOL74 Libraries
Monitoring Server Library Linkage
Thawing and Resuming Server Libraries
Creating Client Programs
Importing Procedures to Client Programs
Importing Data to Client Programs
Specifying Client Libraries
Linking to Server Libraries
Implicitly Linking to Server Libraries
Explicitly Linking to Server Libraries
Directly Linking to Server Libraries
Matching Client and Server Library Objects
Initiating Server Library Processes
Implicitly Initiating a Server Library
Explicitly Initiating a Server Library
Monitoring Client Process Linkage
Delinking from Server Libraries
Creating Connection Library Programs
Declaring a Connection Library
Establishing Connections
Explicitly Linking Connection Libraries
Implicitly Linking Connection Libraries
Directly Linking Connection Libraries
Controlling Connection Library Sharing
Approving a Connection
Monitoring Connection State
Matching Connection Library Objects
Initiating Connection Libraries
Unreadying a Connection Library
Delinking Connection Libraries
Using PROLOG and EPILOG Procedures
Using Connection Library Objects
Global Objects in Connection Libraries
Connection Objects in Connection Libraries
Local Objects in Connection Libraries
Exported and Imported Data in Connection Libraries
Predeclared Objects: THIS and THISCL
Passing Connections as Parameters
Restrictions on OWN Objects in Connection Libraries
Other Library Linkage Methods
Linking a Client Library to a Connection Library
Linking a Connection Library to a Server Library
Linking to a Connection Library in a Server Library Program
Linking Using PROCESS VIA
Directly Linking Client, Server, and Connection Libraries
Using Library Attributes
APPROVAL
AUTOLINK
CHANGE
CLUSAGE
CONNECTIONS
DELINKEVENT
FUNCTIONNAME
INTERFACENAME
INTNAME
LIBACCESS
LIBERROR
LIBPARAMETER
SINGLE
STATE
TITLE
Methods of Providing Objects
Direct Provision
Indirect Provision
Dynamic Provision
Circular Provision
Understanding Circular Linkage and Circular Provision
Restrictions on Circular Linkage and Circular Provision
Matching the Object Name
Type Matching
Matching Procedure Types
Matching Parameter Types
ALGOL Parameter Types
C Parameter Types
COBOL74 Parameter Types
COBOL85 Parameter Types
FORTRAN77 Parameter Types
NEWP Parameter Types
Pascal Parameter Types
Using the ANYTYPE Parameter
Matching Array Lower Bounds
Matching Parameter-Passing Mode
Matching Data Types
Determining Which Clients Are Linked to a Library
Understanding Library Process Structure
Process Stacks
Using Isolated Procedures in Libraries
Library Task Attributes
Error Handling
Design Strategies for Linking Libraries
Technical Architectures
Client Strategies
Server Strategies
Middleware Strategies
Factors Affecting System Performance
Delinkage Overuse
Hazards of Circular Connections
Security Considerations for Libraries
Privileges of the Importing Process
Support Library Attributes
Nonresumable Libraries
Restricting Access to a Library Code File
Using Linkage Classes
Library Debugging
Server Library Examples
ALGOL Library: OBJECT/FILEMANAGER/LIB
ALGOL Client Program #1
ALGOL Library: OBJECT/SAMPLE/LIBRARY
ALGOL Library: OBJECT/SAMPLE/DYNAMICLIB
ALGOL Client Program #2
ALGOL Circular Client Programs
ALGOL Incorrect Circular Libraries
C Library and ALGOL Client Program
C Client Program Passing Array to ALGOL Library
C Client Program Passing File to ALGOL Library
COBOL74 Library: OBJECT/SAMPLE4
COBOL74 Library: OBJECT/SAMPLE5
COBOL74 Client Program
COBOL85 Libraries and Client Program
FORTRAN77 Library and Client Program
Pascal Library
Connection Library Example