ClearPath MCP 21.0
June 2023
8600 0494-513
Copyright © 2023 Unisys Corporation.
Warranty Disclaimer
NO WARRANTIES OF ANY NATURE ARE EXTENDED BY THIS DOCUMENT. Any product or related information described herein is only furnished pursuant and subject to the terms and conditions of a duly executed agreement to purchase or lease equipment or to license software. The only warranties made by Unisys, if any, with respect to the products described in this document are set forth in such agreement. Unisys cannot accept any financial or other responsibility that may be the result of your use of the information in this document or software material, including direct, special, or consequential damages.
You should be very careful to ensure that the use of this information and/or software material complies with the laws, rules, and regulations of the jurisdictions with respect to which it is used.
The information contained herein is subject to change without notice. Revisions may be issued to advise of such changes and/or additions.
Notice to U.S. Government End Users: This software and any accompanying documentation are commercial items which have been developed entirely at private expense. They are delivered and licensed as commercial computer software and commercial computer software documentation within the meaning of the applicable acquisition regulations. Use, reproduction, or disclosure by the Government is subject to the terms of Unisys’ standard commercial license for the products, and where applicable, the restricted/limited rights provisions of the contract data rights clauses.
Table of Contents
- Understanding Basic Tasking Concepts
- Understanding Interprocess Relationships
- Tasking from Interactive Sources
-
- CANDE
- MARC
- Operations Center
- ODT
- Tasking Command Equivalents
- Communicating with an Operator
- Tasking from Programming Languages
-
- Work Flow Language (WFL)
-
- Submitting WFL Input
- Selecting the Queue for a Job
- Specifying a Start Time
- Structuring the WFL Job
- Initiating Dependent Processes from WFL
- Initiating Compilations from WFL
- Initiating Utilities from WFL
- Initiating Interactive Processes from WFL
- Submitting Other WFL Jobs
- Access to Task Attributes in WFL
- Using File Equations in WFL
- Responding to Error Conditions in WFL
- Communicating with Other Processes in WFL
- Controlling a Task from a Job
- Restarting WFL Jobs
- WFL Example
- ALGOL
-
- Structuring an ALGOL Program
- Initiating Processes from ALGOL
- Initiating Compilations from ALGOL
- Initiating Utilities from ALGOL
- Initiating Interactive Processes from ALGOL
- Submitting WFL Jobs from ALGOL
- Access to Task Attributes in ALGOL
- Communicating with Other Processes from ALGOL
- Restarting ALGOL Processes
- DCALGOL Features
- ALGOL Examples
- COBOL
-
- Structuring a COBOL Program
- Initiating Processes from COBOL
- Using Coroutines in COBOL
- Entering Individual COBOL Procedures
- Resolving Ambiguous CALL Statements in COBOL85
- Initiating Compilations from COBOL
- Initiating Utilities from COBOL
- Initiating Interactive Processes from COBOL
- Submitting WFL Jobs from COBOL
- Access to Task Attributes in COBOL
- Invoking COBOL Programs
- Communicating with Other Processes from COBOL
- Terminating Processes from COBOL Programs
- COBOL Examples
- Other Languages
- Establishing Process Identity and Privileges
- Monitoring and Controlling Process Status
- Controlling Processor Usage
- Controlling Process Memory Usage
- Controlling Process I/O Usage
- Determining Process History
-
- Understanding Termination Messages
- Using Log Information
- Programmatically Interrogating Process History
- Protecting a Process from Abnormal Terminations
- Controlling Program Dumps
-
- Using Program Statements to Control Program Dumps
- Using Operator Commands to Control Program Dumps
- Controlling the Program Dump Destination
- Using the Task File
- Analyzing a Program Dump from a Running Process
- Determining Whether a Dump is In Progress
- Causing Symbolic Dumps for RPG Processes
- Effect of Resource Limits on Program Dumps
- Understanding Internal and External Causes
- Restarting Jobs and Tasks
- Tasking Across Multihost Networks
- Understanding Interprocess Communication
- Using Task Attributes
- Using Global Objects
- Using Events and Interlocks
-
- Using Events
-
- Declaring Events
- Accessing the Available State
- Accessing the Happened State
-
- Causing an Event
- Implicitly Causing an Event
- Causing and Resetting an Event
- Partially Causing an Event
- Resetting an Event
- Waiting on an Event
- Waiting on Time
- Waiting on and Resetting an Event
- Waiting on Multiple Events
- Waiting for POSIX Signals
- Testing the Happened State
- Duration of the Happened State
- Using Implicitly Declared Events
- Using Interrupts
- Efficiency Considerations
- Discontinued Processes and Events
- Example of Event Usage
- Using Interlocks
- Using Parameters
- Using Libraries
-
- Introducing Libraries
- Creating Server Library Programs
- Creating Client Programs
- 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
- Other Library Linkage Methods
- Using Library Attributes
- Methods of Providing Objects
- Type Matching
- Determining Which Clients Are Linked to a Library
- Understanding Library Process Structure
- Design Strategies for Linking Libraries
- Factors Affecting System Performance
- Security Considerations for Libraries
- 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
- Using Shared Files
- Using Core-to-Core (CRCR) and Storage Queue (STOQ)
List of Figures
- 1. Multiple TRY Statements
- 2. TRY Statements and Library Delinkages
- 3. ON Statements and TRY Statements
- 4. TRY Statement, EPILOG Procedure, and EXCEPTION Procedure
- 5. TRY Statements and Bad GO TO Statements
- 6. Circular Provision of a Single Procedure
- 7. Circular Linkage without Circular Provision
- 8. Circular Linkage Including a Connection Library
- 9. Circular Linkage with an Extra Connection Library Linkage
- 10. Noncircular Linkage Involving Connection Libraries
- 11. Circular Linkage with a Connection Library as Client
- 12. Two-Tier Model
- 13. Three-Tier Model
List of Tables
- 1. Interactive Tasking Functions
- 2. WFL Execution Modes
- 3. WFL Statements Executed with Privilege
- 4. Process States
- 5. Effects of GOINGAWAY and ACTIVE Assignments
- 6. Abnormal Termination Messages
- 7. Checkpoint Completion Codes
- 8. Comparison of CHECKPOINTARRAY and Checkpoint Facility
- 9. Methods of Sharing Objects
- 10. Programming Language Parameter Types
- 11. Matching Parameter Types
- 12. C Parameters
- 13. COBOL74 Parameters
- 14. COBOL85 Parameters
- 15. FORTRAN77 Parameters
- 16. NEWP Parameters
- 17. Pascal Parameters
- 18. Unbounded and Simple Array Declarations
- 19. Parameter-Passing Modes
- 20. Linkage Classes

