Task Attributes Programming Reference Manual
86000502-407_Task_Attributes_Programming_Reference_Manual_7.0_SSP1_March2002 86000502-407_Task_Attributes_Programming_Reference_Manual_7.0_SSP1_March2002
86000502-407_Task_Attributes_Programming_Reference_Manual_7.0_SSP1_March2002 manual pdf -FilePursuit
86000502-407_Task_Attributes_Programming_Reference_Manual_7.0_SSP1_March2002 86000502-407_Task_Attributes_Programming_Reference_Manual_7.0_SSP1_March2002
TaskAttributes TaskAttributes
User Manual: TaskAttributes
Open the PDF directly: View PDF
.
Page Count: 366
| Download | |
| Open PDF In Browser | View PDF |
Unisys e-@ction
ClearPath Enterprise
Servers
Task Attributes
Programming Reference Manual
ClearPath MCP Release 7.0 SSP1
March 2002
Printed in USA
8600 0502–407
.
Unisys e-@ction
ClearPath Enterprise
Servers
Task Attributes
Programming Reference Manual
UNISYS
û 2002 Unisys Corporation.
All rights reserved.
ClearPath MCP Release 7.0 SSP1
March 2002
Printed in USA
8600 0502–407
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 Government End Users: This is commercial computer software or hardware documentation developed at
private expense. 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.
Correspondence regarding this publication can be e-mailed to doc@unisys.com.
Unisys, ClearPath, and e-@ction are registered trademarks of Unisys Corporation in the United States and other
countries.
All other brands and products referenced in this document are acknowledged to be the trademarks or registered
trademarks of their respective holders.
Unisys e-@ction
ClearPath Enterprise
Servers
Task Attributes
Programming
Reference Manual
ClearPath MCP
Release 7.0 SSP1
8600 0502–407
Unisys e-@ction
ClearPath
Enterprise
Servers
Task Attributes
Programming
Reference
Manual
ClearPath MCP
Release 7.0
SSP1
8600 0502–407
Bend here, peel upwards and apply to spine.
.
Contents
Section 1.
Accessing Task Attributes
What Are Task Attributes? .................................................................... 1–2
Why Use Task Attributes? ................................................... 1–2
Who Can Access Task Attributes? ...................................... 1–3
Performance Considerations ............................................... 1–3
Operator and End-User Access to Task Attributes ............................... 1–3
Using CANDE and MARC Task Equations........................... 1–3
Assigning Task Attributes to a Session ............................... 1–4
Using Operator Commands ................................................. 1–4
Programmer Access to Task Attributes ................................................ 1–5
Using Task Variables ............................................................ 1–5
Reusing Task Variables ........................................................ 1–6
Using WFL Task Equations .................................................. 1–7
Using the WFL Job Attribute List ........................................ 1–7
Assigning Task Attributes to an Object Code File ............... 1–8
Task Attribute Syntax Examples .......................................... 1–9
Using WFLSUPPORT to Access Task Attributes .............. 1–14
Assigning Task Attributes through
HANDLEATTRIBUTES ................................................... 1–14
Decoding Error Values with ATTRIBUTEMESSAGE .......... 1–22
Examples............................................................................ 1–24
System Administrator Access to Task Attributes ............................... 1–26
Assigning Task Attributes to Usercodes............................ 1–26
Assigning Job Queue Attributes ........................................ 1–27
System Access to Task Attributes ...................................................... 1–27
Providing Default Values .................................................... 1–27
Providing Inherited Values ................................................. 1–27
Updating Task Attribute Values.......................................... 1–28
Resolving Conflicting Values.............................................. 1–28
Overwrite Rules for WFL Jobs .......................................... 1–28
Overwrite Rules for Session Tasks.................................... 1–29
Overwrite Rules for Other Processes................................ 1–29
Task Attribute Errors .......................................................... 1–30
Section 2.
Task Attribute Descriptions
Choosing the Right Task Attribute ........................................................ 2–1
Format of the Descriptions.................................................................... 2–7
Name.................................................................................... 2–7
Type ..................................................................................... 2–7
Units..................................................................................... 2–7
8600 0502–407
iii
Contents
Range................................................................................... 2–8
Default ............................................................................... 2–10
Read Time.......................................................................... 2–10
Write Time ......................................................................... 2–11
Inheritance ......................................................................... 2–11
Fork() Inheritance ............................................................... 2–11
Overwrite Rules................................................................. 2–12
Host Services..................................................................... 2–12
Attribute Number............................................................... 2–12
Synonym............................................................................ 2–13
Restrictions........................................................................ 2–14
Explanation ........................................................................ 2–14
Examples ........................................................................... 2–14
Run-Time Errors................................................................. 2–14
Section 3.
Task Attributes A through E
ACCEPTEVENT ..................................................................................... 3–2
ACCESSCODE ...................................................................................... 3–4
ACCUMIOTIME..................................................................................... 3–7
ACCUMPROCTIME .............................................................................. 3–8
APPLYLIST ............................................................................................ 3–9
AUTORESTORE .................................................................................. 3–10
AUTOSWITCHTOMARC ..................................................................... 3–12
AX........................................................................................................ 3–13
BACKUPFAMILY ................................................................................. 3–16
BDNAME............................................................................................. 3–19
BLOCKCREDENTIALS ........................................................................ 3–21
BOTTIMESTAMP ................................................................................ 3–23
BRCLASS ............................................................................................ 3–24
CHARGE.............................................................................................. 3–26
CHECKPOINTABLE............................................................................. 3–29
CLASS ................................................................................................. 3–31
CONVENTION ..................................................................................... 3–33
CORE .................................................................................................. 3–35
COUNTRY ........................................................................................... 3–37
CREDENTIALS .................................................................................... 3–38
CREDENTIALSBASE ........................................................................... 3–40
CURRENTDIRECTORY ....................................................................... 3–41
DATABASE.......................................................................................... 3–46
DATEOFFSET...................................................................................... 3–48
DCIINPUTEVENT................................................................................. 3–49
DCITASKEVENT .................................................................................. 3–51
DECKGROUPNO................................................................................. 3–53
DEFAULTFILEGROUP ........................................................................ 3–54
DEPTASKACCOUNTING..................................................................... 3–55
DESTNAME......................................................................................... 3–58
DESTSTATION .................................................................................... 3–61
DISPLAYONLYTOMCS ....................................................................... 3–63
ELAPSEDLIMIT ................................................................................... 3–65
ELAPSEDTIME.................................................................................... 3–66
iv
8600 0502–407
Contents
ERROR ................................................................................................ 3–67
EXCEPTIONEVENT.............................................................................. 3–75
EXCEPTIONTASK ................................................................................ 3–77
Section 4.
Task Attributes F through K
FAMILY.................................................................................................. 4–2
FETCH ................................................................................................... 4–6
FILEACCESSRULE ................................................................................ 4–8
FILEACCOUNTING.............................................................................. 4–10
FILECARDS ......................................................................................... 4–12
FILEGROUP......................................................................................... 4–17
FILEMASK ........................................................................................... 4–19
GROUPCODE ...................................................................................... 4–21
HISTORY ............................................................................................. 4–23
HISTORYCAUSE ................................................................................. 4–24
HISTORYREASON............................................................................... 4–27
HISTORYTYPE..................................................................................... 4–49
HOSTNAME ........................................................................................ 4–50
HSPARAMSIZE ................................................................................... 4–52
INHERITCREDENTIALS....................................................................... 4–53
INHERITMCSSTATUS ......................................................................... 4–54
INITPBITCOUNT.................................................................................. 4–57
INITPBITTIME...................................................................................... 4–58
ITINERARY .......................................................................................... 4–59
JOBNUMBER ...................................................................................... 4–61
JOBSUMMARY................................................................................... 4–63
JOBSUMMARYTITLE.......................................................................... 4–66
Section 5.
Task Attributes L through R
LABELFORMAT .................................................................................... 5–2
LANGUAGE ........................................................................................... 5–4
LIBRARY................................................................................................ 5–6
LIBRARYSTATE..................................................................................... 5–9
LIBRARYUSERS .................................................................................. 5–11
LOCKED .............................................................................................. 5–12
MAXCARDS ........................................................................................ 5–13
MAXIOTIME ........................................................................................ 5–14
MAXLINES .......................................................................................... 5–16
MAXPROCTIME .................................................................................. 5–18
MAXWAIT ........................................................................................... 5–20
MCSNAME .......................................................................................... 5–22
MIXNUMBER ...................................................................................... 5–23
MPID ................................................................................................... 5–24
MYPPB ................................................................................................ 5–25
NAME .................................................................................................. 5–27
NETPATH............................................................................................. 5–30
NOJOBSUMMARYIO.......................................................................... 5–32
OPTION ............................................................................................... 5–34
OPTIONAL........................................................................................... 5–40
8600 0502–407
v
Contents
ORGUNIT ............................................................................................ 5–41
OTHERPBITCOUNT ............................................................................ 5–44
OTHERPBITTIME ................................................................................ 5–45
PARTNER ............................................................................................ 5–46
PARTNEREXISTS ................................................................................ 5–48
PDUMPTITLE ...................................................................................... 5–49
PRINTDEFAULTS ................................................................................ 5–50
PRIORHISTORY .................................................................................. 5–53
PRIORHISTORYCAUSE ...................................................................... 5–54
PRIORHISTORYREASON ................................................................... 5–55
PRIORHISTORYTYPE ......................................................................... 5–56
PRIORITY ............................................................................................ 5–57
REALGROUPCODE ............................................................................ 5–59
REALUSERCODE................................................................................ 5–60
REPORTBADINITIATE ........................................................................ 5–61
RESOURCE ......................................................................................... 5–62
RESTART............................................................................................. 5–65
RESTARTED........................................................................................ 5–66
Section 6.
Task Attributes S through Z
SAVEDGROUPCODE ............................................................................ 6–2
SAVEDUSERCODE ............................................................................... 6–3
SAVEMEMORYLIMIT ........................................................................... 6–4
SOURCEKIND ....................................................................................... 6–6
SOURCENAME ..................................................................................... 6–8
SOURCESTATION............................................................................... 6–10
STACKHISTORY.................................................................................. 6–13
STACKLIMIT........................................................................................ 6–16
STACKNUMBER ................................................................................. 6–18
STACKSIZE.......................................................................................... 6–19
STARTTIME......................................................................................... 6–21
STATION ............................................................................................. 6–23
STATIONNAME................................................................................... 6–25
STATUS............................................................................................... 6–27
STOPPOINT ........................................................................................ 6–30
SUPPLEMENTARYGRPS .................................................................... 6–32
SUPPRESSWARNING......................................................................... 6–33
SW1 through SW8 .............................................................................. 6–36
TADS ................................................................................................... 6–38
TANKING............................................................................................. 6–40
TARGET............................................................................................... 6–42
TASKERROR ....................................................................................... 6–43
TASKFILE ............................................................................................ 6–47
TASKLIMIT .......................................................................................... 6–49
TASKSTRING....................................................................................... 6–51
TASKVALUE ........................................................................................ 6–53
TASKWARNINGS ................................................................................ 6–54
TEMPFILELIMIT.................................................................................. 6–56
TEMPFILEMBYTES............................................................................. 6–58
TYPE.................................................................................................... 6–59
vi
8600 0502–407
Contents
USERCODE ......................................................................................... 6–60
VALIDITYBITS ..................................................................................... 6–64
WAITLIMIT .......................................................................................... 6–65
Appendix A. Understanding Railroad Diagrams
Railroad Diagram Concepts ...................................................................A–1
Paths ....................................................................................A–1
Constants and Variables.......................................................A–2
Constraints ...........................................................................A–3
Following the Paths of a Railroad Diagram ...........................................A–6
Railroad Diagram Examples with Sample Input ....................................A–7
Appendix B. Related Product Information
Index
8600 0502–407
.............................................................................................. 1
vii
Contents
viii
8600 0502–407
Tables
1–1.
HANDLEATTRIBUTES Error Numbers ............................................................. 1–19
2–1.
2–2.
Task Attribute Functional Groupings .................................................................. 2–1
Task Attribute Synonyms ................................................................................. 2–13
3–1.
3–2.
3–3.
USERDATA Errors ............................................................................................ 3–69
Library Attributes by Number ........................................................................... 3–69
Task Attributes by Number .............................................................................. 3–70
A–1.
Elements of a Railroad Diagram .........................................................................A–2
8600 0502–407
ix
Tables
x
8600 0502–407
Section 1
Accessing Task Attributes
This section discusses the purpose and audience of this manual, and provides an
overview of some of the notation conventions used within the manual. It also explains
task attributes and describes how to access them. For more information on task
attributes, see the Task Management Programming Guide.
Purpose
Task attributes are used to record or control various aspects of process behavior. All
processes possess all the task attributes described in these pages, though the values of
the individual attributes vary from one process to another. The operating system uses
these attributes in executing a process. Some programming languages also allow you to
write applications that query or modify task attributes.
Audience
The audience for this manual consists of programmers who write tasking applications
and operators who use task equations.
Before reading this manual, you should have a basic familiarity with the MCP
environment. A more detailed introduction to tasking and the use of task attributes is
provided in the Task Management Programming Guide.
Terminology Conventions
Two different ANSI levels of COBOL are supported on the MCP systems: ANSI-74, and
ANSI-85. These implementations are referred to in this guide as COBOL74 and
COBOL85, respectively. Statements in this guide about “COBOL” are true of both
COBOL implementations, unless otherwise specified.
The term library, which was used in previous editions of this guide, has been replaced by
the term server library. The term user process (when used in the context of libraries) has
been replaced by the term client process. The library as it is declared in the client
process is now referred to as the client library.
These changes resulted from the implementation of a new type of libraries, called
connection libraries. The term library is now used as a general term referring to a server
library, a client library, or a connection library. For further information about libraries, refer
to the Task Management Programming Guide.
8600 0502–407
1–1
Accessing Task Attributes
What Are Task Attributes?
Each time you initiate a program, the system creates a process that reflects the
executing program. If several users initiate the same program, several processes are
created for that program.
Each process has attributes associated with it. These are called task attributes, although
they could more accurately be called “process” attributes. Task attributes reflect the
various properties of a process.
Object
Code
File
RUN
Command
RUN
Command
Process 1
Process 2
Task
Attribute
Value
Task
Attribute
Value
ACCEPTEVENT
Happened
ACCEPTEVENT
Not Happened
USERCODE
MRICHARDS
USERCODE
JBROWN
WAITLIMIT
1000
WAITLIMIT
250
Each process has the entire list of task attributes described in this manual from
ACCEPTEVENT through WAITLIMIT. However, the values of the task attributes can
vary. For example, each process has a USERCODE task attribute, but the USERCODE
value for one process may be MRICHARDS and the USERCODE value for another
process may be JBROWN, as shown in the previous figure.
Why Use Task Attributes?
You use task attributes to monitor the status of the process and to assign values for the
attribute to pass on to the process. Therefore, you can access a task attribute either to
read the attribute or to assign a value to the attribute.
1–2
8600 0502–407
Accessing Task Attributes
Who Can Access Task Attributes?
The end user, programmer, operator, and system administrator can access the task
attributes of a process in various ways. The system software provides default and
inherited values, resolves conflicting assignments, and issues errors for invalid attempts
to access task attributes.
The rest of this section describes the following ways to access task attributes:
•
Operator and end-user access
•
Programmer access
•
System administrator access
•
System access
Performance Considerations
Task information is a global resource. Access to task information for either inquiry or
modification must be carefully controlled to ensure data integrity. The MCP provides the
required locking protocol to control access. The locking protocol results in serialization of
processes accessing task information. In general, higher priority tasks will gain access to
task information before lower priority tasks.
Operator and End-User Access to Task Attributes
The operator or end user can affect the task attributes of a process with commands
entered in Command and Edit (CANDE) or Menu-Assisted Resource Control (MARC)
sessions or at the operator display terminal (ODT).
Using CANDE and MARC Task Equations
You can make task attribute assignments in CANDE or MARC by using task equations.
Task equations are task attribute assignments that you can append to a process initiation
statement. The system applies these assignments before initiating the process.
In CANDE, you can include task equations after most process initiation statements,
including RUN and UTILITY. In MARC, you can include task equations after the RUN
command. In addition, if you initiate a process from the RUN screen, you can enter task
equations on the TASKATTR screen and the FILEEQUATE screen.
The following is a CANDE example:
RUN ALGOL/TASK;SW1=TRUE;MAXPROCTIME=20;
FILE IN=DAILY/DATA;FILE OUT(KIND=DISK,TITLE=OUTPUT);
The preceding example shows assignments to several types of task attributes. SW1 is a
Boolean attribute, and MAXPROCTIME is a real attribute. The FILE IN and FILE OUT
assignments are examples of the syntax for assigning the FILECARDS task attribute.
8600 0502–407
1–3
Accessing Task Attributes
You can also include task equations after a CANDE COMPILE command. Such task
equations can make assignments to the compilation or the resulting object code file. For
details, refer to “Assigning Task Attributes to an Object Code File” in this section.
Note that a process can change the values of many of its own task attributes while it is
running. Thus, a programmer can design a process to override the effects of task
equations submitted by operators.
Assigning Task Attributes to a Session
When you initiate a process from a CANDE or MARC session, the process inherits a
number of task attributes from the session. You can make assignments to some of the
task attributes of the session by using special CANDE and MARC commands such as
FAMILY, LANGUAGE, and so on. Thereafter, all the processes you initiate from the
session inherit these values, unless you override them with task equations. For details,
refer to the discussion of tasking from interactive sources in the Task Management
Programming Guide.
Using Operator Commands
You can use any of several system commands to make assignments to the task
attributes of a running process. You can enter these system commands, or close
equivalents to them, at an ODT or in a MARC or CANDE session. These include
communication commands, which affect such task attributes as EXCEPTIONEVENT,
ACCEPTEVENT, and TASKVALUE. You can use other commands to change the
PRIORITY value or to change the STATUS value of the process. For details, refer to the
discussion of tasking from interactive sources in the Task Management Programming
Guide.
1–4
8600 0502–407
Accessing Task Attributes
Programmer Access to Task Attributes
You can access task attributes in either of two ways:
•
Through language constructs in Work Flow Language (WFL), ALGOL, COBOL74, and
COBOL85
•
Through calls on the WFLSUPPORT library
You can access task attributes from programs by any of several means, including task
variables, task equations, the WFL job attribute list, and object code file assignments.
The following subsections discuss the WFL, ALGOL, and COBOL language constructs
for reading and assigning task attributes, as well as the WFLSUPPORT interface.
Using Task Variables
Task variables are the main method of accessing task attributes from programs. A task
variable is an object that is declared in a program and that accesses the task attributes of
a particular process. The task variable becomes associated with a particular process by
being specified in the statement that initiates that process. For example, the following
COBOL statement initiates a process and associates the task variable TASK-VAR-1 with
that process:
PROCESS TASK-VAR-1 WITH PROC-EXTERNAL.
Certain predeclared task variables are available that are automatically associated with a
particular process. The MYSELF task variable allows a process to access its own task
attributes. The MYJOB task variable accesses the task attributes of the job of the
process. The task attribute PARTNER accesses the task attributes of the partner process
and the task attribute EXCEPTIONTASK accesses the task attributes of the exception
task.
Additionally, a process can access any task variable within the extended addressing
environment of the outer block of the process. For example, if the process is an internal
task, it can access task variables declared globally in its parent. The process can access
any task variables declared in its own code. The process can also access any task
variables that are passed as parameters.
Task attributes can be assigned to a task variable before the task variable is used in a
process initiation statement. These task attributes are assigned to the new process
when it is initiated. If the same task attribute is assigned more than once, the most
recent value assigned is used when the process is initiated. If the task attributes of the
task variable are read before initiation, they return their default values or the values they
were previously assigned.
8600 0502–407
1–5
Accessing Task Attributes
If a task variable is associated with a dependent process in the initiation statement, then
the task variable remains associated with the process after initiation. The task variable
can be used to access the task attributes of the running process. Assignments to the
task variable can change the behavior of the process. Interrogations of the task variable
can be used to monitor the status of the process.
If a task variable is associated with an independent process in the initiation statement,
then any task attributes that were previously assigned to the task variable are applied to
the independent process. However, once initiation completes, the task variable ceases to
be associated with the independent process. The task attributes of the task variable can
be read or written to; however, these operations do not access the task attributes of the
independent process.
Once the process has terminated, the task variable can be used to examine the final
values of the task attributes of the process. For example, the history-related attributes of
the task variable can be examined for information about how the process terminated.
Reusing Task Variables
The same task variable can be specified in more than one task initiation statement in a
program. However, the same task variable cannot be associated with two processes at
the same time. For example, the following pair of ALGOL statements causes an error:
PROCESS PROG1 [T];
PROCESS PROG2 [T];
Because the first statement initiates an asynchronous process, task variable T is still in
use when the second statement is executed. An ALGOL process that executes the
statements in the previous example is discontinued with the run-time error “INITIATE
ACTIVE TASK”.
Problems can arise from task attributes being carried over from one use of the task
variable to another. Consider the following ALGOL statements:
CALL PROG1 [T];
CALL PROG2 [T];
No error results from these statements, because PROG1 is initiated as a synchronous
process. The statement that initiates PROG2 is not executed until PROG1 terminates.
However, PROG1 might have used the MYSELF task variable to make an assignment to
its FAMILY task attribute. This new FAMILY value is passed on to PROG2, simply
because it uses the task variable that was previously associated with PROG1. Other task
attribute values can also be passed on in this way.
This problem can be prevented by declaring a different task variable for each process that
is to be initiated. The task variable can also be made safe for reuse by reinitializing it. A
task variable can be reinitialized by setting the STATUS task attribute to NEVERUSED.
This assignment causes all task attributes to be returned to their default values. The
following ALGOL statement reinitializes a task variable:
TVAR.STATUS := VALUE(NEVERUSED);
1–6
8600 0502–407
Accessing Task Attributes
WFL also provides the INITIALIZE statement for reinitializing task variables. The following
is an example of this statement:
INITIALIZE (TVAR);
These statements reinitialize the task variable only if it is not currently in use. That is, the
current value of the STATUS task attribute must be TERMINATED, BADINITIATE, or
NEVERUSED. Otherwise, the assignment has no effect.
Using WFL Task Equations
You can use task equations in WFL jobs that are similar to the task equations allowed in
CANDE or MARC sessions. You can include task equations after a process initiation
statement, such as RUN or PROCESS. Where task equations conflict with previous
assignments to the task variable, the task equations take precedence. The following is an
example of a WFL job that uses task equations:
100 ?BEGIN JOB WFL/TEST;
200 TASK T (TASKVALUE = 3);
300 RUN OBJECT/ALGOL/TASK [T];
400
TASKVALUE = 1;
500 ?END JOB
In this example, OBJECT/ALGOL/TASK runs with a TASKVALUE of 1 because the task
equation overrides the previous assignment to the task variable.
You can also use task equations with the COMPILE statement to make assignments to
the compilation or the resulting object code file. For details, refer to “Assigning Task
Attributes to an Object Code File” in this section.
Note that a process can change the values of many of its own task attributes while it is
running. Thus, a programmer can design a process to override the effects of task
equations submitted through WFL.
Using the WFL Job Attribute List
A WFL job attribute list consists of task attribute assignments in the WFL source
program, immediately following the job header. The system applies the assignments in
the job attribute list before initiating the job. This feature can be useful because some
task attributes can be assigned to a process only before initiation (an example is the
CLASS task attribute).
8600 0502–407
1–7
Accessing Task Attributes
The following is an example of a WFL job with a job attribute list that assigns the CLASS,
CHARGE, and JOBSUMMARY task attributes:
?BEGIN JOB RUNNER;
CLASS = 2;
CHARGE = ORDERS;
JOBSUMMARY = SUPPRESSED;
RUN OBJECT/TAU ON PACK;
?END JOB
Assigning Task Attributes to an Object Code File
In some cases, you might want certain task attributes to be assigned the same values
each time a program is run. For many task attributes, you can achieve this effect by
including statements in the source program that assign task attributes to the MYSELF
task variable. However, some task attributes can only be assigned before process
initiation. For a WFL job, you can assign such task attributes in the job attribute list. For
programs written in other languages, you can assign such task attributes to the object
code file. The task attributes stored in the object code file are used whenever the object
code file is initiated, unless they are overridden by later task attribute assignments.
You can assign task attributes to the object code file at compile time through the use of
compiler task equations, which can be included in the WFL or CANDE COMPILE
statements. You must be careful to distinguish between task equations that affect the
compilation itself and task equations that affect the resulting object code file. The
following WFL example uses compiler task equations:
500 COMPILE OBJECT/X WITH ALGOL LIBRARY;
600
COMPILER FILE CARD (TITLE = X, KIND = DISK);
700
ALGOL PRIORITY = 50;
800
TASKVALUE = 3;
In both WFL and CANDE, task equations are applied to the compilation if they are
preceded by the word COMPILER or the name of a compiler. Otherwise, the task
equations are applied to the object code file. In the preceding example, the task
equations at lines 600 and 700 are applied to the compilation. The task equation at line
800 is applied to the object code file.
WFL includes a statement that can be used to make task attribute assignments to an
existing object code file. This is the MODIFY statement. Task attributes that are stored
by a MODIFY statement have the same effect as task attributes assigned at compile
time: they serve as default values for every execution of that object code file. They also
override any conflicting task attribute assignments that were made at compile time. The
following is an example of a MODIFY statement:
MODIFY OBJECT/X;
CHARGE = ADMIN;
FILE INPUT = (JAS)DOC/103 ON DOCPK;
1–8
8600 0502–407
Accessing Task Attributes
Note: Task attributes assigned to an object code file do not affect internal tasks of that
object code file. For example, suppose you assign TASKVALUE = 1 to an object code
file. Someone then initiates the object code file, which in turn uses a CALL or PROCESS
statement to initiate an internal procedure as an internal task. That internal task is not
directly affected by the TASKVALUE = 1 assignment. Therefore, the internal task runs
with the default TASKVALUE of 0 unless a different value is explicitly assigned to the
task variable of the internal task.
Task Attribute Syntax Examples
Different task attributes store different types of values. Most task attributes store values
that are of type Boolean, event, integer, mnemonic, real, string, or task. The following
pages give examples of how these various types of task attributes can be read or
assigned in WFL, ALGOL, COBOL74, and COBOL85. For information about how to
access task attributes that are of irregular types, refer to the task attribute descriptions.
Note that task attributes can also be assigned from other task declarations. For example,
in ALGOL:
TASK PRIORITY := MYSELF.PRIORITY -5;
In COBOL74:
CHANGE ATTRIBUTE task-attr OF task-id TO ATTRIBUTE task-attr OF task-id.
Accessing Boolean Task Attributes
Boolean task attributes have a value of TRUE or FALSE. In WFL, these values can be
read or assigned directly, or the task attribute can be used in other Boolean expressions.
WFL also allows the use of a null assignment, which assigns a value of TRUE. Thus, the
following two statements are equivalent. (In these statements, T is a task variable.)
T (DISPLAYONLYTOMCS = TRUE);
T (DISPLAYONLYTOMCS); % Null assignment; assigns a value of TRUE
The following WFL examples show the use of Boolean task attributes as expressions.
BOOL is a Boolean variable and T is a task variable.
BOOL := T(LOCKED);
IF T(SW1) THEN DISPLAY "NO ERRORS FOUND";
The ALGOL syntax is similar, except that task attributes are preceded by periods instead
of enclosed in parentheses. In the following examples, BOOL is a Boolean variable and T
is a task variable:
T.DISPLAYONLYTOMCS := TRUE;
BOOL := T.LOCKED;
IF T.SW1 THEN BOOL := TRUE;
8600 0502–407
1–9
Accessing Task Attributes
In COBOL74 and COBOL85, Boolean task attributes return a value of 0 if FALSE or 1 if
TRUE. Boolean attributes must be moved into a numeric receiving field. However, the
VALUE function can be used when assigning or reading Boolean values. In the following
examples, BOOLVAL was declared as 77 BOOLVAL BINARY PIC 9(11).
MOVE ATTRIBUTE LOCKED OF MYSELF TO BOOLVAL.
CHANGE ATTRIBUTE LOCKED OF MYSELF TO VALUE FALSE.
IF ATTRIBUTE SW1 OF MYSELF = VALUE FALSE
DISPLAY "SWITCH ONE IS OFF."
Accessing Event Task Attributes
The event task attributes are accessed by the same types of statements that access
event variables. For a discussion of statements related to events, refer to the Task
Management Programming Guide.
The following are ALGOL examples:
CAUSE (MYSELF.EXCEPTIONTASK.EXCEPTIONEVENT);
WAITANDRESET (MYSELF.EXCEPTIONEVENT);
The following are COBOL74 or COBOL85 examples:
CAUSE ATTRIBUTE EXCEPTIONEVENT OF MYSELF.
WAIT AND RESET UNTIL ATTRIBUTE EXCEPTIONEVENT OF MYSELF.
WFL jobs cannot reference event task attributes directly. However, the following
statements cause the job to implicitly wait on the exception event and the accept event:
WAIT; % Causes the job to wait on its own exception event.
STR := ACCEPT("ENTER A COMMAND"); % Waits on its own accept event &
% stores operator AX command
% input in string variable STR.
Accessing Integer and Real Task Attributes
In general, integer and real task attributes accept or return a numeric identifier, literal, or
arithmetic expression. The system allows you to mix integer and real types: thus, you
can assign a real value to an integer task attribute or read a real task attribute value into
an integer variable. The system rounds off real numbers to change them into integers
where necessary.
In the following WFL example, INT is an integer variable and T is a task variable:
CLASS = 2;
INT := T(TASKVALUE);
1–10
8600 0502–407
Accessing Task Attributes
In the following ALGOL example, INT is an integer variable and T is a task variable:
T.TASKVALUE := 3;
INT := T.CORE;
In the following COBOL74 or COBOL85 examples, INTVAL was declared as 77 INTVAL
BINARY PIC 9(11).
CHANGE ATTRIBUTE TASKVALUE OF MYSELF TO 16.
MOVE ATTRIBUTE TASKVALUE OF MYSELF TO INTVAL.
Accessing Mnemonic Task Attributes
In WFL, mnemonic task attributes can be read into string values or compared with string
values. Mnemonics can be assigned as keywords, without quotes around them. In the
following examples, STR is a string variable and T is a task variable:
MYSELF(JOBSUMMARY = SUPPRESSED);
STR := T(HISTORYTYPE);
IF T(HISTORYTYPE) = "NORMALEOTV" THEN DISPLAY "RAN SUCCESSFULLY";
In ALGOL, mnemonic task attributes accept or return a numeric value. The VALUE
function can be used to translate a mnemonic into a numeric value for assignment to, or
comparison with, a mnemonic task attribute. In the following examples, INTVAL is an
integer variable and T is a task variable:
MYJOB.JOBSUMMARY := VALUE(SUPPRESSED);
INTVAL := T.HISTORYTYPE;
IF T.HISTORYTYPE = VALUE(SUPPRESSED) THEN ...
In COBOL74 or COBOL85, mnemonic task attributes also accept or return a numeric
value and the VALUE function is available. In the following examples, MNEMVAL was
declared as 77 MNEMVAL BINARY PIC 9(11):
MOVE ATTRIBUTE JOBSUMMARY OF MYSELF TO MNEMVAL. % Returns a number
CHANGE ATTRIBUTE JOBSUMMARY OF MYSELF TO VALUE UNCONDITIONAL.
IF ATTRIBUTE JOBSUMMARY OF MYSELF = VALUE UNCONDITIONAL
DISPLAY "JOBSUMMARY IS UNCONDITIONAL".
Accessing String Task Attributes
In WFL, string task attributes can be read into string variables and assigned string literals,
variables, or expressions. WFL also allows some string task attributes to be assigned a
nonquoted value. If a string task attribute is assigned a nonquoted value, then the
nonquoted value is checked for correct syntax at compile time. If the same task attribute
is assigned a string value, the contents of the string are not checked for syntax until run
time.
8600 0502–407
1–11
Accessing Task Attributes
In the following WFL examples, STR is a string variable and T is a task variable:
T(FAMILY DISK = DPMAST OTHERWISE DISK); % Nonquoted assignment
T(FAMILY = "DISK = DPMAST OTHERWISE DISK"); % String assignment
T(FAMILY = "GIBBERISH"); % Receives run-time error
STR := T(FAMILY); % Reading the value into a string variable
In ALGOL, string task attributes are treated as one-dimensional EBCDIC arrays. You can
use REPLACE statements to assign values or to read string task attribute values into
EBCDIC arrays. You must terminate values assigned to string task attributes with a
period (.). Values returned by string task attributes are also terminated with a period. In
the following examples, T is a task variable and ARR is an EBCDIC array that was
declared as EBCDIC ARRAY ARR[0:79]:
REPLACE T.NAME BY "(JASMITH)OBJECT/THETA ON PACK.";
REPLACE ARR BY T.NAME;
Note: Note that ALGOL syntax does not allow you to use string task attributes in the
same way as string variables. For example, if STR is a string variable, the statement STR
:= T.NAME results in a syntax error.
In COBOL74 or COBOL85, string task attributes accept or return an alphanumeric item.
The value is terminated with a period, as in ALGOL. In the following example, TASK-VAR1 is a task variable and STRINGVAL was declared as 77 STRINGVAL PIC X(80):
CHANGE ATTRIBUTE NAME OF TASK-VAR-1 TO "OBJECT/ALGOL/TASK.".
MOVE ATTRIBUTE FILECARDS OF TASK-VAR-1 TO STRINGVAL.
Accessing Task-Valued Task Attributes
Task-valued task attributes can be assigned a task variable or can be used as task
variables to access the task attributes of a particular process. In the following ALGOL
examples, TVAR is a task variable that was previously declared:
MYSELF.PARTNER := TVAR;
MYSELF.EXCEPTIONTASK.TASKVALUE := 33;
In the following COBOL74 or COBOL85 examples, TVAR-1 and TVAR-2 were previously
declared as 77-level items with a USAGE of TASK:
CHANGE ATTRIBUTE EXCEPTIONTASK OF TVAR-1 TO TVAR-2.
CHANGE ATTRIBUTE PRIORITY OF ATTRIBUTE PARTNER OF MYSELF TO 65.
Task-valued task attributes cannot be accessed from WFL.
1–12
8600 0502–407
Accessing Task Attributes
Accessing Task Attributes at the Bit Level
Some Boolean, integer, and real task attributes return values that are divided into bit
fields with distinct meanings. Examples are the ERROR, HISTORY, LIBRARYSTATE,
ORGUNIT, SOURCESTATION, STOPPOINT, and TASKERROR task attributes.
The following are ALGOL statements that extract the values from various fields of the
ERROR task attribute. In these statements, R is a real variable, ERR is a Boolean variable,
and ERRNUM and UCERRNUM are real variables:
R := TVAR.ERROR;
ERR := BOOLEAN(R.[46:1]);
ERRNUM := R.[7:8];
UCERRNUM := R.[27:20];
%
%
%
%
Put ERROR value in real variable
Translate a bit value into a Boolean
Record the task attribute number
Record the USERDATA error number
The following are COBOL74 or COBOL85 statements that extract the values from the
various fields of the ERROR task attribute. The variables INTVAL, ERR, ERRNUM, and
UCERRNUM were all declared as 77-level variables of type BINARY PIC 9(11).
MOVE
MOVE
MOVE
MOVE
ATTRIBUTE
INTVAL TO
INTVAL TO
INTVAL TO
ERROR OF TASK-VAR-1 TO INTVAL.
ERR [ 46:00:01 ].
ERRNUM [ 07:07:08 ].
UCERRNUM [ 27:19:20 ].
In WFL, there is no direct way to access task attributes at the bit level. However, the
ERROR task attribute can be accessed by mnemonic values in WFL. Further, a WFL job
can extract values from selected fields of any real or integer value by calling the following
ALGOL program:
PROCEDURE WORDANALYZER(FULLWORD, STARTPOINT, LENGTH, FIELDVAL);
VALUE FULLWORD, STARTPOINT, LENGTH;
REAL FULLWORD, FIELDVAL;
INTEGER LENGTH, STARTPOINT;
BEGIN
FIELDVAL := FULLWORD.[STARTPOINT:LENGTH];
END.
In the WORDANALYZER program, the FULLWORD parameter receives the real or
integer value to be analyzed. The STARTPOINT parameter receives the left-most bit
position of the field being evaluated. The LENGTH parameter receives the length of the
field being evaluated. The FIELDVAL parameter returns the value of the specified field.
Note that the calling WFL job should pass the FIELDVAL parameter by reference.
WFL does not provide access to the HISTORYREASON task attribute. The following WFL
job determines the HISTORYREASON value indirectly by calling the WORDANALYZER
program. WORDANALYZER extracts field [23:08] from the HISTORY task attribute value.
8600 0502–407
1–13
Accessing Task Attributes
BEGIN JOB TEST/WFL;
REAL HREASON;
TASK T;
RUN OBJECT/DELTA [T];
RUN OBJECT/WORDANALYZER(T(HISTORY),23,8,HREASON REFERENCE);
IF T(HISTORYTYPE) = "DSEDV" AND T(HISTORYCAUSE) = "OPERATORCAUSEV"
AND HREASON = 2 % Equivalent to HISTORYREASON mnemonic JUSTDSEDV
THEN ABORT "OBJECT/DELTA WAS DSED BY OPERATOR";
END JOB
Note: Some programmers have attempted to use WFL expressions involving DIV and
MOD operators to extract the values of fields in words. This method is not
recommended, because the DIV and MOD operators interpret a number of the bits in
field [46:08] as sign or exponent values. The value of these high-order bits can therefore
affect the results of DIV and MOD operations.
ALGOL, COBOL, and WFL all provide bit-level access to the OPTION task attribute by
way of special mnemonics that specify the bit position. For examples, refer to the
description of the OPTION task attribute.
Using WFLSUPPORT to Access Task Attributes
The WFLSUPPORT system library exports two library procedures that assist in assigning
attributes to a task variable: the HANDLEATTRIBUTES procedure and the
ATTRIBUTEMESSAGE procedure. The HANDLEATTRIBUTES procedure accepts a string
of text containing task attribute assignments, and makes the requested assignments to a
task variable. The ATTRIBUTEMESSAGE procedure accepts an encoded task attribute
assignment error as input and returns a textual error message.
Assigning Task Attributes through HANDLEATTRIBUTES
The HANDLEATTRIBUTES procedure has the following primary uses, which are
illustrated by examples later in this section.
•
HANDLEATTRIBUTES passes task attributes to a compiler for insertion into an object
code file. This procedure replaces the old mechanism of attaching attributes to the
compiler SHEET array, which is to be deimplemented on a future release.
•
An interactive program using HANDLEATTRIBUTES allows the user to enter task
attribute assignments at run time. Because HANDLEATTRIBUTES includes all the
logic for checking the task attribute syntax, the interactive program need not be
changed as new task attributes are implemented in the future.
The HANDLEATTRIBUTES procedure assumes that the task attribute assignments follow
the syntax of a task equation list in WFL, except that local data specifications cannot be
included. For the syntax of the WFL task equation list, refer to the Work Flow Language
(WFL) Programming Reference Manual.
1–14
8600 0502–407
Accessing Task Attributes
HANDLEATTRIBUTES can handle assignments to all the task attributes that can be
specified in WFL. These include assignments to the DATABASE, FILECARDS, and
LIBRARY task attributes, which are known in WFL as database equations, file equations,
and library equations, respectively. Like WFL, HANDLEATTRIBUTES does not handle
assignments to task attributes of type event or task.
If any of the task attribute assignments contains an error, HANDLEATTRIBUTES returns
without making the requested assignments. You can specify options to tell
HANDLEATTRIBUTES whether to accept assignments that generate warnings.
You can use the AICOMPILEF field of the HOW1 parameter to specify whether
HANDLEATTRIBUTES is to accept both compiler task equations and noncompiler task
equations. Additionally, you can use the DISPOSITION parameter to specify whether the
equations are to be assigned to the target task variable, assigned to the MYPPB task
attribute for later use, or simply checked for syntactical correctness.
The following is an ALGOL example of the way the WFLSUPPORT library declaration and
the HANDLEATTRIBUTES procedure declaration look in a calling program:
LIBRARY WFLSUPPORT (LIBACCESS=BYFUNCTION);
REAL PROCEDURE HANDLEATTRIBUTES
(TEXT,TEXTOFFSET,TEXTLENGTH,HOW1,DISPOSITION,TARGET,ERRORLOC);
REAL
TEXTOFFSET,TEXTLENGTH,HOW1,DISPOSITION,
ERRORLOC;
EBCDIC ARRAY TEXT[*];
TASK
TARGET;
LIBRARY WFLSUPPORT;
Alternatively, you can use the $INCLUDE compiler option in your program to
automatically insert these declarations from the file *SYMBOL/ATTRIBUTE/
INTERPRETER/INTERFACE. It is a good idea to do so because this file also contains
many defines that can be used with the HANDLEATTRIBUTES procedure.
The HANDLEATTRIBUTES parameters are explained as follows:
TEXT
The calling program must place the text of the task attribute assignments in this
parameter. The assignments must follow the syntax of a task equation list in WFL.
TEXTOFFSET
The calling program can use this parameter to specify the offset within the TEXT buffer
at which the attribute assignments begin. The offset is zero-relative and expressed in
units of bytes.
TEXTLENGTH
The calling program can use this parameter to specify the number of bytes to be parsed
starting at the location specified by the TEXTOFFSET parameter. If TEXTLENGTH is 0,
then TEXT is scanned until a null character is encountered.
8600 0502–407
1–15
Accessing Task Attributes
HOW1
The calling program can use this parameter to specify parsing control options. The fields
of this parameter have the following meanings:
[47:23]
Reserved. The value of this field must be 0.
[24:01]
AIWARNINGSFATALF.
If 1, and a warning or error is detected, HANDLEATTRIBUTES returns without
making the requested assignments. The procedure result and the ERRLOC
parameter store information about the error or warning.
If 0, and a warning is detected, HANDLEATTRIBUTES displays a warning
message and then continues normally. If an error is detected,
HANDLEATTRIBUTES behaves as it would if the value of this field were 1.
[23:23]
Reserved. The value of this field must be 0.
[00:01]
AICOMPILEF.
If AICOMPILEF is 1, compiler mode is enabled. This mode makes it possible to
assign task attributes to a compilation or to the resulting object code file.
Compiler task equations are those that are prefixed by the word COMPILER or
the name of a compiler, such as ALGOL, PASCAL, and so on.
If AICOMPILEF is 0, then any task attribute assignments preceded by a compiler
prefix result in a syntax error.
For further information, refer to the following discussion of the DISPOSITION
parameter.
1–16
8600 0502–407
Accessing Task Attributes
DISPOSITION
The calling program can use this parameter to specify whether the task attribute
assignments are to be applied. The effect of the DISPOSITION parameter varies,
depending on whether compiler mode is specified by the AICOMPILEF field of the
HOW1 parameter. The values of this parameter have the following meanings:
0
AIATTACHV
If HANDLEATTRIBUTES is invoked in compiler mode, then compiler task
equations are assigned to TARGET.MYPPB. The compiler task equations in
TARGET.MYPPB are applied to TARGET when TARGET.APPLYLIST is set to
TRUE, or when TARGET is used to initiate a process (whether the process is a
compiler or not).
Noncompiler task equations are assigned as a nested MYPPB value within
TARGET.MYPPB. If TARGET is later used to initiate a compiler process, the
compiler process reads the nested task equations from TARGET.MYPPB and
assigns them to the resulting object code file.
If HANDLEATTRIBUTES is invoked in noncompiler mode, then any compiler task
equations receive an error. Noncompiler task equations are assigned to
TARGET.MYPPB. The equations in TARGET.MYPPB are applied when
TARGET.APPLYLIST is set to TRUE or when TARGET is used in a process
initiation statement.
1
AIAPPLYV
If HANDLEATTRIBUTES is invoked in compiler mode, then compiler task
equations are applied directly to TARGET.
Noncompiler task equations are assigned to TARGET.MYPPB. If TARGET is later
used to initiate a compiler, the compiler applies the equations in TARGET.MYPPB
to the resulting object code file. Note that the system never applies the
TARGET.MYPPB equations to TARGET, not even if TARGET.APPLYLIST is set to
TRUE or TARGET is used in a process initiation statement.
If HANDLEATTRIBUTES is invoked in noncompiler mode, then any compiler task
equations receive an error. Noncompiler task equations are applied directly to
TARGET. Nothing is written to TARGET.MYPPB.
2
AISYNTAXONLYV
If HANDLEATTRIBUTES is invoked in compiler mode, then both compiler and
noncompiler task equations are checked for syntax. None of the equations are
applied and nothing is written to TARGET.MYPPB.
If HANDLEATTRIBUTES is invoked in noncompiler mode, then any compiler task
equations receive an error. Noncompiler task equations are checked for syntax.
None of the equations are applied and nothing is written to TARGET.MYPPB.
TARGET
The calling program can use this parameter to provide the task variable to which the task
attribute assignments are applied. This parameter is ignored if the value of the
DISPOSITION parameter is AISYNTAXONLYV.
8600 0502–407
1–17
Accessing Task Attributes
ERRORLOC
HANDLEATTRIBUTES uses this parameter to return error information to the calling
program. If field AIERRORF of the procedure result is 0, meaning that no error occurred,
then this parameter stores a 0. If field AIERRORF has a value of 1, then ERRORLOC
returns a value divided into the following fields:
[47:20]
This field is always 0.
[27:01]
AIERROFFSETVALIDF
If 1, then the error is associated with a particular offset in the input TEXT array.
This offset is given in field AIERROFFSETF of the ERRORLOC parameter.
If 0, then the error is not associated with a specific offset. In this case, the
AIERROFFSETF field does not store any offset.
[26:01]
This field is always 0.
[25:18]
AIERROFFSETF
This field stores the zero-relative offset of the task attribute error in the TEXT
parameter. This field is meaningful only if the AIERROFFSETVALIDF field of the
ERRORLOC parameter stores a 1.
[07:08]
This field is always 0.
Procedure Result
The HANDLEATTRIBUTES result contains general information about task attribute errors.
The value is divided into the following fields:
[47:08]
AITYPEF
The type of attribute for which the error was detected. The possible values are
as follows:
1 = FILECARDS task attribute
2 = Miscellaneous task attribute
4 = PRINTDEFAULTS task attribute
6 = LIBRARY task attribute
7 = DATABASE task attribute
[39:16]
AIATTNUMF
The number of the attribute for which the error was detected. If field [47:08] of
the procedure result indicates that FILECARDS had an error, then AIATTNUMF
stores the number of the file attribute that caused the error. Otherwise,
AIATTNUMF stores the number of the task attribute that caused the error. For
file attribute numbers, refer to the File Attributes Programming Reference
Manual. For task attribute numbers, refer to the description of the ERROR task
attribute.
[23:16]
AIERRNUMF
The error or exception number. Refer to Table 1–1, “HANDLEATTRIBUTES
Error Numbers,” for a list of these numbers and their meanings. This
information also appears in the file
*SYMBOL/ATTRIBUTE/INTERPRETER/INTERFACE.
1–18
8600 0502–407
Accessing Task Attributes
[07:05]
This field is always 0.
[02:01]
AIATTNUMVALIDF
If 1, then the error is associated with a particular attribute in the input TEXT. In
this case, the AIATTNUMF field and the AITYPEF field are valid. If 0, the error
is not associated with a particular attribute and these fields are not valid.
[01:01]
AIWARNINGF
If 0, the error is fatal. If 1, it is a warning.
[00:01]
AIERRORF
If 1, an error occurred. If 0, no error occurred and none of the other fields in
this result are valid.
Table 1–1 explains the values of the numbers returned in field [23:16] of the
HANDLEATTRIBUTES procedure result.
Table 1–1.
HANDLEATTRIBUTES Error Numbers
Error
Number
Meaning
0
No error or warning occurred.
1-1000
If the error number is in this range, the error number is equal to the
HISTORYREASON task attribute value. For information about the
value, refer to the description of the HISTORYREASON task attribute.
1015
A syntax error was detected.
1017
An attribute mnemonic was expected.
1018
A numeric value was expected.
1019
An end-of-text marker was encountered.
1021
The same attribute has been assigned two values. This is a warning in
most cases, but it is an error for the PRINTDEFAULTS attribute. If the
warning is ignored, the more recent value overwrites the previous
value.
1023
A right parenthesis was expected.
1027
A semicolon was expected (;).
1030
A string over 256 characters long was specified.
1031
An ending quotation mark (") is missing.
1032
The maximum number was exceeded.
1033
An illegal character was used.
1034
An illegal file name was used.
1035
An OPTION task attribute mnemonic was expected.
1036
An attribute mnemonic was expected.
1037
An illegal attribute mnemonic was used.
8600 0502–407
1–19
Accessing Task Attributes
Table 1–1.
HANDLEATTRIBUTES Error Numbers
Error
Number
1–20
Meaning
1038
A left parenthesis was expected.
1039
A real constant was expected.
1040
The user part of a file title must be 12 names or less.
1041
The end of the statement was expected.
1042
A task attribute was expected.
1043
A compiler name was expected.
1044
An equal sign (=) was expected.
1045
A simple volume name was expected.
1046
A keyword was not recognized.
1047
An attempt was made to assign a value to a read-only attribute.
1048
Too many serial numbers were specified.
1049
The serial number was too long.
1050
A serial number was expected.
1051
The serial number contained an illegal character.
1052
This construct can be used only in a job heading.
1053
An illegal resource value was specified.
1054
A number from 0 to 255 was expected.
1055
This attribute is not valid in this context.
1056
A comma (,) was expected.
1057
The word OTHERWISE or ONLY was expected.
1058
A WFLSUPPORT fault occurred.
1059
String constants are not allowed here.
1060
This construct is not implemented.
1061
There was an error in numeric constant evaluation.
1062
The DATABASE attribute was expected.
1063
An illegal name was specified.
1064
A hyphen (-) or underscore (_) cannot be the first character of an
unquoted name.
1065
The family specification was invalid.
1066
A file attribute was expected.
1067
A print attribute or print modifier was expected.
1068
A file equation for this file was previously specified; the previous
equation is ignored.
8600 0502–407
Accessing Task Attributes
Table 1–1.
HANDLEATTRIBUTES Error Numbers
Error
Number
Meaning
1072
An invalid type was specified.
1073
An invalid INTNAME file attribute value was specified.
1074
The word UP was expected.
1075
The word FILE was expected.
1076
The version number specified in ParseTaskAttributes,
AttributesToTask, or AttributeMessage is too big.
1077
AIERRINFO_AVAILF is not 0.
1078
AIHOW_AVAILF is not 0.
1079
AIHOW1_AVAIL1F or AIHOW1_AVAIL2F is not 0.
1080
AIHOW3_AVAILF is not 0.
1081
AIHOW4_AVAILF is not 0.
1082
HOW5 is not 0.
1083
AIWHATTODO_AVAIL1F or AIWHATTODO_AVAIL2F is not 0.
1084
LIBRARY attribute expected.
1085
Only one node is allowed in a Multi-Vendor Password.
1086
The INTNAME of a file is more than 17 characters.
1087
Language id exceeds 17 characters.
1088
Too many AX values were specified for the task.
8600 0502–407
1–21
Accessing Task Attributes
Decoding Error Values with ATTRIBUTEMESSAGE
The ATTRIBUTEMESSAGE procedure translates the HANDLEATTRIBUTES procedure
result into a textual error message, suitable for display to a user.
ATTRIBUTEMESSAGE also allows you to specify the language in which the error
message should be displayed, an array to hold the error message, and the offset in the
array where the error message should start. ATTRIBUTEMESSAGE places the error
message at the requested location in the array, and updates the offset parameter to
point to the end of the error message.
The following is an ALGOL example of the way the WFLSUPPORT library declaration and
the ATTRIBUTEMESSAGE procedure declaration look in a calling program:
LIBRARY WFLSUPPORT (LIBACCESS=BYFUNCTION);
REAL PROCEDURE ATTRIBUTEMESSAGE
(ERRINFO,HOW4,LANGUAGE,LANGLENGTH,MSG,MSGOFFSET);
REAL
ERRINFO,HOW4,
LANGLENGTH,
MSGOFFSET;
EBCDIC ARRAY
LANGUAGE[*],
MSG[*];
LIBRARY WFLSUPPORT;
Alternatively, you can use the $INCLUDE compiler option in your program to
automatically insert these declarations from the file *SYMBOL/ATTRIBUTE/
INTERPRETER/INTERFACE. It is a good idea to do so because this file also contains
many defines that can be used with the ATTRIBUTEMESSAGE procedure.
The ATTRIBUTEMESSAGE parameters are explained as follows:
ERRINFO
The calling program must store the encoded error description in this parameter. The
format of this word must be the same as the procedure result returned by
HANDLEATTRIBUTES.
HOW4
The calling program can use this parameter to specify some aspects of the
ATTRIBUTEMESSAGE interface. This parameter is divided into the following values:
[47:04]
AIMESSAGEVERSIONF
This field stores the version number of the ATTRIBUTEMESSAGE interface.
For the version supplied with this release, the value should be 0.
[43:43]
Reserved. The value of this field must be 0.
[00:01]
AIDISPLAYMESSAGEF
If 1, ATTRIBUTEMESSAGE issues a DISPLAY statement that causes the
resulting error message to appear in the MSG (Display Messages) system
command display. (The DISPLAYONLYTOMCS task attribute can limit the
display of the message.)
If 0, the error message does not appear in the MSG display.
1–22
8600 0502–407
Accessing Task Attributes
LANGUAGE
The calling program can use this parameter to specify the language in which the error
message is to be reported. Parsing of the language starts at element 0 of the
LANGUAGE value, although leading blanks are ignored. Parsing ceases when a null
character is encountered or when the number of characters specified by the
LANGLENGTH parameter has been parsed.
If the requested language is not supported on the system, a warning of
AILANGNOTAVAILABLEV is reported and the system default language is used.
LANGLENGTH
The calling program can use this parameter to specify the maximum number of
characters in the LANGUAGE parameter to be parsed, starting at element 0 of the
LANGUAGE value. If LANGLENGTH is 0, the LANGUAGE parameter is ignored and the
LANGUAGE task attribute of the calling process is used instead.
MSG
ATTRIBUTEMESSAGE returns the decoded error message in this parameter. You should
take care that the array passed to this parameter is at least as long as the sum of the
initial MSGOFFSET value and the value of the AIMSGLENGTHV define in
*SYMBOL/ATTRIBUTE/INTERPRETER/INTERFACE. (The AIMSGLENGTHV define
specifies the maximum length message that can be returned by the current version of
ATTRIBUTEMESSAGE.)
MSGOFFSET
The calling program can use this parameter to specify the offset within the MSG array at
which the decoded message should begin. ATTRIBUTEMESSAGE updates this
parameter to return the offset of the null character that terminates the decoded
message.
Procedure Result
ATTRIBUTEMESSAGE uses this parameter to report errors. The procedure result has the
same format as the HANDLEATTRIBUTES procedure result, as previously described in
this section.
The format of the message returned in MSG, the message parameter, is as follows
when the error pertains to a specific attribute (that is, when field AIATTNUMVALIDF of
the ERRINFO parameter equals 1):
Attribute "":
For example:
Task Attribute "DECLAREDPRIORITY":Cannot recognize keyword
If the error does not pertain to a specific attribute (that is, the AIATTNUMVALIDF field of
the ERRINFO parameter equals 0), the message has the following format:
Attribute Error:
8600 0502–407
1–23
Accessing Task Attributes
Examples
The following are examples of ALGOL programs that use the HANDLEATTRIBUTES and
ATTRIBUTEMESSAGE procedures.
Example 1: Setting Multiple Attributes.
The following interactive program asks a user to supply task attribute assignments. The
program then calls HANDLEATTRIBUTES to check the assignments for correctness and
apply them to a task variable. If there are no errors, the program uses the task variable to
initiate a task. If there are errors, the program uses ATTRIBUTEMESSAGE to display an
error message.
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
1–24
BEGIN
$INCLUDE ATTINT = "*SYMBOL/ATTRIBUTE/INTERPRETER/INTERFACE"
TASK T;
FILE TERM(KIND = REMOTE,FILEUSE=IO);
EBCDIC ARRAY TEXT[0:419], LANG[0:119], MYPPBVAL[0:599];
REAL ERRORLOC, ATTERR, MSGERR, ERROFFSET, HOW1;
PROCEDURE UTILRUN;
EXTERNAL;
WRITE(TERM,//,"PLEASE ENTER YOUR TASK EQUATIONS");
REPLACE TEXT BY 48"00" FOR 420;
READ(TERM,420,TEXT);
ATTERR := HANDLEATTRIBUTES(TEXT,0,0,HOW1,AIAPPLYV,T,ERRORLOC);
IF ATTERR = 0 THEN
CALL UTILRUN [T]
ELSE
BEGIN
DISPLAY(TEXT);
IF ERRORLOC.AIERROFFSETVALIDF = 1 THEN
BEGIN
REPLACE TEXT BY " " FOR ERRORLOC.AIERROFFSETF,
"^", 48"00";
DISPLAY(TEXT);
END;
REPLACE TEXT BY "*" FOR 3;
ERROFFSET := 3;
REPLACE LANG BY T.LANGUAGE;
MSGERR := ATTRIBUTEMESSAGE(ATTERR,1,LANG,0,TEXT,ERROFFSET);
END;
END.
8600 0502–407
Accessing Task Attributes
The following is an example of the interaction between a user and this program. The user
runs the program from a CANDE session. Because the user misspells the TASKVALUE
task attribute, the program returns an error message and does not initiate the requested
task.
User:
Response:
Response:
Response:
User:
Response:
Response:
Response:
Response:
Response:
RUN ATTINT/TEST
#RUNNING 9807
#?
PLEASE ENTER YOUR TASK EQUATIONS
NAME=OBJECT/ALGOL/TASK;TASKVALUW=R;PRIORITY=60;
#9807 DISPLAY:NAME=OBJECT/ALGOL/TASK;TASKVALUW=R;PRIORITY=60;
.
#9807 DISPLAY:
^.
#9807 DISPLAY:***Attribute error: Task attribute expected.
#ET=27.6 PT=0.1 IO=0.1
Example 2: Inserting Attributes into an Object Code File
Programs that initiate a compiler can cause attributes to be inserted into the resulting
object code file. These attributes are applied at task initiation time whenever the object
code file is executed. The following example shows how this is done using the
HANDLEATTRIBUTES and ATTRIBUTEMESSAGE procedures.
100
110
120
130
140
150
160
170
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
8600 0502–407
BEGIN
$INCLUDE ATTINT="*SYMBOL/ATTRIBUTE/INTERPRETER/INTERFACE."
TASK CTASK;
ARRAY SHEET[0:32];
EBCDIC ARRAY TEXT[0:299];
REAL ERRLOC, ATTERR, MSGERR, MSGOFFSET;
PROCEDURE ALGOLCOMPILER(SHEET);
ARRAY SHEET[*];
EXTERNAL;
REPLACE TEXT BY
"ALGOL NAME=*SYSTEM/ALGOL ON DISK;"
"ALGOL FILE CARD (KIND=DISK, TITLE=ALGOL/TASK);"
"ALGOL FILE CODE (KIND=DISK, TITLE=OBJECT/ALGOL/TASK);"
"MAXPROCTIME=20;TASKVALUE=3;"
"FILE IN=DAILY/DATA; FILE OUT(KIND=DISK,TITLE=OUTPUT)" 48"00";
ATTERR:=HANDLEATTRIBUTES(TEXT,0,0,1,AIAPPLYV,CTASK,ERRLOC);
REPLACE SHEET BY 0 FOR 33 WORDS;
SHEET[8] := VALUE(LIBRARY); % This statement specifies the
% object code file disposition.
SHEET[0] := 0 & 1[47:1];
CALL ALGOLCOMPILER(SHEET) [CTASK];
END.
1–25
Accessing Task Attributes
In this example, the task assignments at lines 220 through 240 are applied to the
compilation, because they are preceded by the keyword ALGOL. The task assignments
at lines 250 through 260 are assigned to the resulting object code file, because they have
no compiler name prefixing them.
System Administrator Access to Task Attributes
The system administrator can establish defaults and limits on the use of various task
attributes by various users. These defaults and limits aid in preserving system security
and managing workload.
Assigning Task Attributes to Usercodes
The system administrator can create usercode definitions in the USERDATAFILE by
running either MAKEUSER or a DCALGOL program that calls the USERDATA function.
By creating a usercode definition, the system administrator makes that usercode a legal
value for the USERCODE task attribute. By suspending or removing the usercode
definition, the system administrator can prevent processes from being initiated with that
USERCODE task attribute value.
The usercode definition can include one or more usercode attributes. Several of these
usercode attributes provide values that can be inherited by task attributes of processes
that run with that usercode. The following task attributes can be affected by the values
of usercode attributes: ACCESSCODE, CHARGE, CLASS, CONVENTION,
DEPTASKACCOUNTING, DESTNAME, FAMILY, FILEACCOUNTING, LANGUAGE,
PRINTDEFAULTS, PRIORITY, SAVEMEMORYLIMIT, and TEMPFILELIMIT. These can be
referred to as the usercode-related task attributes of a process.
These task attributes are not always affected by their corresponding usercode attributes.
The system administrator might not have included all the possible usercode attributes in
the usercode definition. Furthermore, the usercode attributes are inherited only in the
following circumstances:
•
Usercode attributes can be inherited by a WFL job that includes a USERCODE
assignment in the job attribute list. Any usercode-related task attributes that are not
assigned values in the job attribute list receive their values from the usercode
attributes.
•
Usercode attribute values are inherited by CANDE or MARC session attributes at logon time. These session attributes are inherited by any processes initiated from the
session, unless the user takes actions to change the session attributes or uses task
equations to assign different task attributes to a process. (Refer to the discussion of
tasking from interactive sources in the Task Management Programming Guide.)
The usercode-related task attributes are also inherited from a parent by its offspring,
unless specifically overridden. In this way, a usercode attribute can be propagated
through an entire process family.
For further details about the inheritance rules for usercode-related task attributes, refer to
the descriptions of each of these task attributes in this manual.
1–26
8600 0502–407
Accessing Task Attributes
Assigning Job Queue Attributes
The system administrator can use job queue definitions to affect the task attributes of
WFL jobs and their descendants. The job queue definitions are created by way of the MQ
(Make or Modify Queue) system command. Each job queue definition can include job
queue attributes that specify default or limiting values for task attributes of jobs run from
that queue. The job queue attributes correspond mostly to task attributes that impose
limits on resource usage, such as MAXPROCTIME and MAXIOTIME. For a summary of
the effects of job queue attributes on task attributes, refer to the Task Management
Programming Guide.
System Access to Task Attributes
The system software plays several roles in the assignment of task attribute values. The
system provides values for task attributes in some cases, resolves conflicting
assignments from various sources, and issues errors when an attempt is made to access
an attribute incorrectly.
The system software provides values for task attributes that have not been specifically
assigned values by any of the other methods discussed in this section. The following
subsections discuss the types of assignments that the system software makes.
Providing Default Values
The default value for a task attribute is the value it assumes if no other factors influence
the task attribute value. For Boolean task attributes, the default is typically FALSE; for
integer or real task attributes, 0; for string task attributes, a null string.
The default values for all the task attributes are documented in this manual.
Providing Inherited Values
Inheritance is the transfer of a task attribute value from a process to one of its
descendants. Different inheritance rules are applied to different task attributes; some can
inherit values, but others cannot. The inheritance rules for each task attribute are
included in the task attribute descriptions.
Some of the basic task attributes that can be inherited are USERCODE, ACCESSCODE,
CHARGE, and FAMILY. The inheritance properties save the programmer the trouble of
having to assign these task attributes for each member of the process family. A single
assignment to the job can be propagated to all its descendants.
The term inheritance is also loosely applied to the transfer of values from job queue
attributes, session attributes, or usercode attributes to a process. These types of
inheritance are discussed under “Assigning Job Queue Attributes,” “Assigning Task
Attributes to a Session,” and “Assigning Task Attributes to Usercodes” in this section.
8600 0502–407
1–27
Accessing Task Attributes
Updating Task Attribute Values
During process execution, the system automatically updates the values of certain task
attributes. These task attributes return information about dynamic aspects of process
status and history. One example is the STATUS task attribute, whose value is updated
when the process becomes scheduled, suspended, resumed, or terminated. Other
examples are the task attributes that record resource usage, including
ACCUMPROCTIME and ACCUMIOTIME. These automatic updates make it possible to
use these task attributes to monitor the current state of a process as it executes.
Resolving Conflicting Values
When a process is initiated, the system software evaluates the task attribute values
submitted from the various sources discussed in this section. Where different sources
have assigned conflicting values to the same task attribute, the system chooses the
value submitted from the most dominant source.
The rules used to determine which assignment is most dominant are called overwrite
rules. The system applies different overwrite rules to different task attributes. However,
most task attributes follow either standard overwrite rules or object code file dominant
overwrite rules. The following subsections describe standard and object code file
dominant overwrite rules for various types of processes.
Each task attribute description includes information about the overwrite rules for that
task attribute. The description states whether that task attribute follows standard or
object code file dominant overwrite rules. For task attributes that follow irregular rules,
the exact behavior of the task attributes is explained.
Overwrite Rules for WFL Jobs
The following are the various sources that can contribute to the initial task attribute
values of a WFL job. The sources are listed in order from most dominant to least
dominant according to standard overwrite rules.
1. Assignments in the job attribute list of the WFL job.
2. Usercode attributes, if a USERCODE assignment is included in the job attribute list of
the WFL job.
3. Attributes of the parent process or job, if the WFL job was initiated from a user
process or job.
4. Attributes of the CANDE or MARC session, if the WFL job was initiated from a
session.
5. Job queue defaults. (By contrast, job queue limits do not affect the initial task
attribute values of a WFL job. They simply affect the selection of a queue for the job.)
6. The task attribute default.
1–28
8600 0502–407
Accessing Task Attributes
Task attributes cannot be assigned to the object code file of a WFL job because a WFL
job has no object code file. Object code file dominant task attributes, when applied to a
WFL job, follow the standard overwrite rules listed previously.
The following is one illustration of the overwrite rules for WFL jobs. Suppose the job
attribute list of a certain WFL job includes a PRINTDEFAULTS assignment, followed by a
USERCODE assignment. Further, suppose that the usercode definition in the
USERDATAFILE has a PRINTDEFAULTS value associated with it. In this case, only the
PRINTDEFAULTS value specified in the job attribute list is used, even though the
USERCODE assignment statement occurred last.
Overwrite Rules for Session Tasks
The following are the various sources that can contribute to the initial task attribute
values of a task initiated from a CANDE or MARC session. The sources are listed in order
from most dominant to least dominant according to standard overwrite rules.
1. Task equations appended to the initiation statement.
2. Inheritance from the attributes of CANDE or MARC sessions.
3. Assignments to the object code file.
4. The task attribute default.
For an object code file dominant task attribute, the order of dominance is the same,
except that item 3, assignments to the object code file, is moved to the head of the list.
Overwrite Rules for Other Processes
The following are the various sources that can contribute to the initial task attribute
values of a process initiated from a WFL, ALGOL, or COBOL process. The sources are
listed in order from the most dominant to the least dominant according to standard
overwrite rules.
1. Task equations appended to the initiation statement.
2. Task attribute assignments to the task variable outside the task variable declaration.
3. Task attribute assignments in the task variable declaration. (This feature is supported
only by WFL.)
4. Assignments to the object code file.
5. Inheritance from the parent.
6. The task attribute default.
For an object code file dominant task attribute, the order of dominance is the same,
except that item 4, assignments to the object code file, is moved to the head of the list.
8600 0502–407
1–29
Accessing Task Attributes
Task Attribute Errors
Task attribute errors result from an attempt to access a task attribute in an improper
manner. The most basic errors are caught at compile time. These include type
mismatches that occur, for example, from assigning a string to an integer-valued task
attribute.
Other task attribute errors are caught only at run time. For example, a run-time error can
result from assigning a task attribute a value that is
•
Outside the allowed range. For example, if a particular attribute has a range of 1 to
9999, then an assignment of 10500 might cause an error.
•
Assigned at the wrong time. Some attributes can be assigned only before initiation;
after initiation, assignment causes a run-time error.
•
Referring to a nonexistent entity. For example, an error results from assigning a
DESTSTATION value that does not correspond to a valid Logical Station Number
(LSN).
•
Inconsistent with a related attribute. For example, the USERCODE and CHARGE task
attributes must be compatible.
An attempt to read a task attribute can also result in an error in some cases. For
example, if the private process bit of the OPTION task attribute is set, then other
processes are prevented from reading (or assigning) the task attributes of this process.
Some task attributes can cause a delayed error if assigned an invalid value. For example,
the STATION task attribute can be assigned a value that refers to a nonexistent station.
No error occurs until the process attempts to open a remote file.
The process that attempted to access the task attribute can be referred to as the
accessing process. The process whose task attribute was accessed can be referred to
as the receiving process. The accessing process and the receiving process can be the
same, for example, if the MYSELF task variable is used.
If the attempted access is illegal, the accessing process incurs the error. If the accessing
process is nonprivileged, almost all task attribute errors are fatal. If the accessing
process is privileged or a message control system (MCS), then errors in accessing eventvalued or file-valued task attributes are generally fatal, but most other task attribute
errors are not fatal.
The ERROR task attribute of the receiving process stores the attribute number of the
task attribute that was being accessed when the error occurred. The accessing process
can read the ERROR task attribute of the receiving process to determine whether the
last task attribute access was successful. The system erases the ERROR value each
time it is read. TASKERROR is another task attribute that provides error information.
Unlike ERROR, the TASKERROR value is not erased when it is read.
For further details about these task attributes, refer to the ERROR and TASKERROR task
attribute descriptions.
1–30
8600 0502–407
Accessing Task Attributes
The operator or the user is notified of task attribute errors by the display of error
messages for the process. Many task attribute error messages are documented in this
manual in the “Run-Time Errors” part of the task attribute descriptions. All the errors
documented in this manual are also included in the index for easy reference.
The error messages that are displayed for a process are somewhat more informative if
the object code file of the process was compiled with the LINEINFO compiler option set.
This option causes the sequence number of each record in the source program to be
stored in the object code file. When an error occurs, the sequence number of the
statement that incurred the error is included at the end of the error message.
If LINEINFO was not set, then error messages display the code address instead of the
sequence number of the statement that incurred the error. You can interpret the code
address by referring to the printout produced by the compiler if the LIST compiler option
was set. For an example of this printout, refer to the discussion of process history in the
Task Management Programming Guide.
8600 0502–407
1–31
Accessing Task Attributes
1–32
8600 0502–407
Section 2
Task Attribute Descriptions
Task attributes provide a wide variety of options for process monitoring and control.
Using task attributes, you can control various aspects of file usage, memory usage,
resource usage, and communication with other processes or with operators. You can
also use task attributes to determine the status of a process or discover how it
terminated.
The following sections include complete descriptions of all the task attributes that are
supported for customer use as of the current ClearPath MCP release. Note that the file
SYMBOL/ATTABLEGEN, which lists all the task attributes, includes several that are not
documented in this manual. These undocumented task attributes are intended only for
internal use. Attempts by customers to use these task attributes result in compile-time
errors, run-time errors, or other undefined results.
Choosing the Right Task Attribute
At this time, about a hundred task attributes have been implemented. Each task attribute
is designed to assume reasonable default or inherited values. Therefore, it is not
necessary for you to learn the functions of all the task attributes. However, by studying
the task attributes related to a particular area of process control, you can learn how to
take advantage of the abilities the system provides in that area.
Table 2–1, “Task Attribute Functional Groupings,” helps you find the task attributes
relevant to each aspect of process control. For details about any of these task attributes,
refer to the individual descriptions in this manual.
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Billing
ACCESSCODE
CHARGE
USERCODE
COMS direct window
programs
DCIINPUTEVENT
Databases
DATABASE
DCITASKEVENT
MAXWAIT
8600 0502–407
2–1
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Data comm
AUTOSWITCHTOMARC
DCIINPUTEVENT
DCITASKEVENT
DESTNAME
DESTSTATION
DISPLAYONLYTOMCS
INHERITMCSSTATUS
LANGUAGE
MCSNAME
ORGUNIT
SOURCEKIND
SOURCENAME
SOURCESTATION
STATION
STATIONNAME
SUPPRESSWARNING
TANKING
Debugging
OPTION
PDUMPTITLE
TADS
TASKFILE
Files
AUTORESTORE
BACKUPFAMILY
CURRENTDIRECTORY
DEFAULTFILEGROUP
FAMILY
FILEACCESSRULE
FILECARDS
FILEGROUP
FILEMASK
LABELFORMAT
OPTION (the AUTORM, BACKUP,
TODISK and TOPRINTER options)
2–2
8600 0502–407
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
History
DEPTASKACCOUNTING
ERROR
FILEACCOUNTING
HISTORY
HISTORYCAUSE
HISTORYREASON
HISTORYTYPE
OPTION
PRIORHISTORY
PRIORHISTORYCAUSE
PRIORHISTORYREASON
PRIORHISTORYTYPE
STACKHISTORY
STATUS
STOPPOINT
TASKERROR
TASKFILE
TASKWARNINGS
Identification
BOTTIMESTAMP
JOBNUMBER
MIXNUMBER
MPID
NAME
8600 0502–407
2–3
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Interprocess Communication
ACCEPTEVENT
AX
EXCEPTIONEVENT
EXCEPTIONTASK
LOCKED
MAXCARDS
NETPATH
OPTION (the “private process” option)
OPTIONAL
PARTNER
PARTNEREXISTS
REPORTBADINITIATE
STATUS
SW1 through SW8
TARGET
TASKLIMIT
TASKSTRING
TASKVALUE
TYPE
Job Summaries
JOBSUMMARY
JOBSUMMARYTITLE
NOJOBSUMMARYIO
OPTION (the NOSUMMARY option)
Libraries
LIBRARY
LIBRARYSTATE
LIBRARYUSERS
STATUS
Localization
CONVENTION
COUNTRY
LANGUAGE
Logging
DEPTASKACCOUNTING
FILEACCOUNTING
2–4
8600 0502–407
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Memory Management
CORE
SAVEMEMORYLIMIT
STACKLIMIT
STACKSIZE
Messages
DISPLAYONLYTOMCS
LANGUAGE
SUPPRESSWARNING
TASKWARNINGS
Printer Output
BACKUPFAMILY
BDNAME
DESTNAME
DESTSTATION
OPTION (the BACKUP, BDBASE, and
NOSUMMARY options)
PRINTDEFAULTS
TASKFILE
Remote Tasking
HOSTNAME
ITINERARY
Resource Usage Data
ACCUMIOTIME
ACCUMPROCTIME
ELAPSEDTIME
INITPBITCOUNT
INITPBITTIME
OTHERPBITCOUNT
OTHERPBITTIME
TEMPFILEMBYTES
8600 0502–407
2–5
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Resource Usage Limits
ELAPSEDLIMIT
MAXIOTIME
MAXLINES
MAXPROCTIME
MAXWAIT
PRIORITY
RESOURCE
SAVEMEMORYLIMIT
STACKLIMIT
TASKLIMIT
TEMPFILELIMIT
WAITLIMIT
Restarting Processes
BRCLASS
CHECKPOINTABLE
RESTART
RESTARTED
Security
ACCESSCODE
BLOCKCREDENTIALS
CREDENTIALS
CREDENTIALSBASE
FILEACCESSRULE
FILEMASK
GROUPCODE
INHERITCREDENTIALS
INHERITMCSSTATUS
REALGROUPCODE
REALUSERCODE
SAVEDGROUPCODE
SAVEDUSERCODE
SUPPLEMENTARYGRPS
USERCODE
2–6
8600 0502–407
Task Attribute Descriptions
Table 2–1.
Task Attribute Functional Groupings
Category
Attribute
Task Attribute Usage
APPLYLIST
MYPPB
ERROR
TASKERROR
Tape Usage
LABELFORMAT
RESOURCE
WFL Jobs
CLASS
DECKGROUPNO
FETCH
STARTTIME
Format of the Descriptions
Each task attribute description includes information about certain characteristics of task
attributes. The following subsections explain how these characteristics are presented in
the task attribute descriptions.
Name
Each task attribute description begins with a heading that gives the name of the task
attribute. An attribute is generally referred to by the same name from all the sources
accessing it. The only exception to this rule occurs when several task attributes have
synonyms and some sources recognize only the synonym. Refer to the “Synonym”
discussion in this section.
Type
This part of the description indicates the type of data stored in the task attribute. Almost
all task attributes fall into one of the following types: Boolean, event, file, integer,
mnemonic, real, string, or task. A few other attributes, such as OPTION and RESOURCE,
are of irregular types. For details about how to access these types from various
languages, refer to “Programmer Access to Task Attributes” in Section 1, “Accessing
Task Attributes.”
Units
This part of the description specifies, for either a real or an integer task attribute, the
units measured by the attribute value: seconds, microseconds, words, and so on.
8600 0502–407
2–7
Task Attribute Descriptions
Range
This part of the description defines the legal values for the attribute. For example, a
mnemonic attribute’s range consists of all the valid mnemonic values for the attribute.
An integer attribute’s range defines the upper and lower limits of the integers allowed
(for example, 1 through 256).
In some cases, the range is defined by a metatoken, which is a word or phrase enclosed
within angle brackets, as in the following example: . For such items, a
railroad diagram is used to describe the exact range of the task attribute values. If a
metatoken is referred to by only one task attribute description, then the railroad diagram
for that metatoken is given in the description of that task attribute. Metatokens that are
referred to by more than one task attribute description are defined in the following syntax
discussion. For information about how to read these diagrams, refer to Appendix A,
“Understanding Railroad Diagrams.”
Syntax
Any one of the 10 Arabic numerals 0 through 9
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
The hyphen character (-)
ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
ÀÄ " ÄÁÄ/17\ÄÄÁÄ " ÄÙ
ÚêÄÄÄÄÄÄÄÄ / ÄÄÄÄÄÄÄÄ¿
ÄÄÁÄ/12\ÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
Any uppercase or lowercase letter, number, or special character that is not a quotation
mark (") and that has a hexadecimal code greater than or equal to 4"40".
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÄÄÁÄ/17\ÄÂÄÄÂÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
2–8
8600 0502–407
Task Attribute Descriptions
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÄÄÂÄÄÂÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄÁÄ/16\ÄÂÄÄÂÄÁÄÙ
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÃÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÙ
ÚêÄÄÄÄÄÄÄÄ / ÄÄÄÄÄÄÄÄ¿
ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÁÄ/12\ÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄë
ÃÄ ( ÄÄÄÄ ) Ä´
ÀÄ * ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ëÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄ ON ÄÄÄÙ
The underscore character (_)
Any one of the 26 uppercase characters A through Z.
ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
ÀÄ " ÄÁÄ/17\ÄÄÁÄ " ÄÙ
8600 0502–407
2–9
Task Attribute Descriptions
Default
This part of the description lists the value that the task attribute assumes if the attribute
does not inherit its value and is not assigned a value. For a read-only task attribute, this is
the value the task attribute returns if interrogated before initiation.
For many string task attributes, the default listed is null string. If this default value is read
from Work Flow Language (WFL), a string of 0 length ("") is returned. However, if this
default value is read from ALGOL or COBOL, a string that contains a single period (".") is
returned.
Read Time
This part of the description defines whether and when the task attribute value can be
interrogated by a program. The following are the possible read time values:
•
Anytime. The task attribute of the task variable can be read before the process is
initiated, while it is running, or after termination.
•
Anytime; accurate after initiation. The task attribute can be read at any time, but does
not receive its actual value until the process is initiated.
•
Anytime; accurate while in use. The task attribute can be read at any time, but is
reset to its default when the process terminates.
•
Never. The task attribute cannot be read. Such an attribute is called write-only.
•
Only while in use. The task attribute can be read only for an in-use process. That is,
the task attribute cannot be read before the process is initiated or after it is
terminated.
Note that inheritance, object code file assignments, and run-time assignments can cause
the values of many attributes to change at initiation time. Therefore, any value that is
read before initiation might not reflect the value that the process actually receives.
2–10
8600 0502–407
Task Attribute Descriptions
Write Time
This part of the description defines whether and when the task attribute can be assigned
a value by a program. The following are the possible write time values:
•
Anytime. The task attribute of the task variable can be assigned before the process is
initiated, while it is running, or after termination.
•
Anytime, effective before initiation. The task attribute value can be assigned at any
time without incurring an error; however, assignments made after initiation are
ignored.
•
Before initiation. The task attribute must be assigned as one of the following:
•
−
An assignment to the task variable before the process is initiated.
−
A task equation appended to the statement that initiates the process.
−
An assignment in the job attribute list of a WFL job. The job attribute list
immediately follows the job heading at the start of the job. These assignments
are applied before the job begins execution.
−
An assignment to the object code file of the process. Such assignments can be
appended to the WFL or CANDE COMPILE statements or can be made to an
existing object code file by way of the WFL MODIFY statement.
Never. The task attribute cannot be assigned. Such an attribute is called read-only.
Inheritance
This part of the description explains whether the task attribute inherits its value from the
equivalent task attribute of an ancestor process or from a job queue attribute, session
attribute, or usercode attribute.
If a task attribute inherits from the parent, then both dependent processes and
independent processes inherit that attribute, unless otherwise stated.
Although inheritance rules are described definitively, inherited values can be overridden
by several other types of explicit and implicit assignments. Refer to “Resolving
Conflicting Values” in Section 1, “Accessing Task Attributes,” for more information.
Fork() Inheritance
This part of the description explains whether the task attribute inherits a value when the
POSIX fork() statement initiates a process. For information about the fork() statement
and the POSIX tasking model, refer to the POSIX User's Guide.
8600 0502–407
2–11
Task Attribute Descriptions
Overwrite Rules
This part of the description specifies which of the possible sources for task attribute
values takes precedence at initiation time if there is a conflict. For each attribute, the
overwrite rules are listed as standard or as object code file dominant or else described in
detail. The standard overwrite rules and object code file dominant overwrite rules are
discussed under “Resolving Conflicting Values” in Section 1, “Accessing Task
Attributes.”
Host Services
This part of the description states whether the task attribute is supported by Host
Services. If it is supported, then a process running on one host system may access this
attribute of a process running on another host system. If the task attribute is not
supported, then it is not possible to use the task attribute across hosts.
For a centralized list of the task attributes supported by Host Services, refer to the
discussion of tasking across multihost networks in the Task Management Programming
Guide.
Attribute Number
This part of the description specifies the number used to identify the task attribute if an
error occurs when a process accesses that attribute. If such an error occurs, the ERROR
task attribute stores the attribute number of the task attribute that was accessed when
the error occurred. A list of task attributes, in numeric order, is given in the discussion of
the ERROR task attribute.
2–12
8600 0502–407
Task Attribute Descriptions
Synonym
This part of the description lists an alternate name for the task attribute, if there is one.
Synonyms were implemented primarily because a more concise or more descriptive
name was invented after the task attribute was originally implemented. While the
“Name” part of the task attribute description gives the preferred name for the attribute,
the “Synonym” part lists the nonpreferred name. Most languages allow you to use either
name for the task attribute.
Table 2–2 summarizes the preferred and nonpreferred names for the benefit of these
users.
Table 2–2.
Task Attribute Synonyms
Nonpreferred Name
Preferred Name
BACKUPDESTINATION
DESTNAME
BACKUPPREFIX
BDNAME
BLOCKCREDS
BLOCKCREDENTIALS
CHARGECODE
CHARGE
COREESTIMATE
CORE
DECLAREDPRIORITY
PRIORITY
FILE
FILECARDS
INHERITCREDS
INHERITCREDENTIALS
INITIATOR
STATION
IOTIME
MAXIOTIME
OPTIONS
OPTION
ORGHOSTNAME
Deimplemented; use the leftmost part of
the ITINERARY attribute value instead.
PRINTLIMIT
MAXLINES
PROCESSIOTIME
ACCUMIOTIME
PROCESSTIME
ACCUMPROCTIME
QUEUE
CLASS
STACK
STACKSIZE
STACKNO
MIXNUMBER
TARGETTIME
TARGET
TASKATTERR
ERROR
VALUE
TASKVALUE
8600 0502–407
2–13
Task Attribute Descriptions
Restrictions
Most task attributes can be accessed by ALGOL, COBOL74, COBOL85, and WFL.
However, a few of the attributes are not available from one or more of these sources.
For example, WFL cannot access event-valued task attributes. ALGOL and the COBOL
languages cannot use the STARTTIME and FETCH task attributes, which are specific to
WFL. These language restrictions are discussed in the “Restrictions” part of the attribute
description.
CANDE or Menu-Assisted Resource Control (MARC) commands can access a limited
subset of the task attributes, although such restrictions are not documented in the
attribute descriptions. For lists of the task attributes accessible from CANDE and MARC
sessions, refer to the discussion of tasking from interactive sources in the Task
Management Programming Guide.
Explanation
This part of the description summarizes the function of the task attribute. In many cases,
relevant background information, helpful hints, or cautions are also provided.
Examples
Some of the task attribute descriptions include an “Examples” part, usually because they
are unusual in some way. For examples of how to access most types of task attributes
from programs, refer to “Programmer Access to Task Attributes” in Section 1,
“Accessing Task Attributes.”
Run-Time Errors
This part of the description discusses task attribute access errors that occur when the
program is executed rather than when it is compiled. In addition, some errors closely
related to the task attribute are discussed. For example, the errors for exceeding
resource limits are documented.
Run-time errors are usually fatal for nonprivileged processes. However, they are not fatal
for privileged processes, message control systems (MCSs), or tasking programs, unless
specifically stated in the text.
The index at the end of this manual includes page references for all the error messages
that are discussed in this manual.
2–14
8600 0502–407
Section 3
Task Attributes A through E
This section contains task attributes starting with the letters A through E.
8600 0502–407
3–1
ACCEPTEVENT
ACCEPTEVENT
Type
Event
Units
Not applicable
Range
Default
HAPPENED, NOT HAPPENED
NOT HAPPENED
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
NOT HAPPENED
Overwrite Rules
None (read-only)
Host Services
Attribute Number
Synonym
Restrictions
Not supported
100
None
Not available in WFL
Explanation
The ACCEPTEVENT task attribute accesses a predeclared event called the accept event
that is associated with each process. The accept event is caused by the system
whenever an operator enters an AX (Accept) system command for the process. A
program can conveniently use this attribute in a statement that waits on several events,
one of which is the ACCEPTEVENT task attribute, as in the following ALGOL example:
WAITANDRESET(EVNT1,EVNT2,MYSELF.ACCEPTEVENT);
A process can also attach its ACCEPTEVENT to an interrupt, in which case the interrupt
is executed whenever an operator enters an AX command for the process.
A process can access only its own accept event. For example, a process cannot
interrogate or wait on the value of the accept event of its parent. A process that
attempts to do so receives a run-time error and terminates abnormally.
Note: Assignments to the AX task attribute do not cause the ACCEPTEVENT task
attribute. Only AX system commands cause the ACCEPTEVENT task attribute.
For more information about the AX command and about events, refer to the Task
Management Programming Guide.
3–2
8600 0502–407
ACCEPTEVENT
Run-Time Errors
NON-LOCAL ACCEPTEVENT
A process attempted to access the ACCEPTEVENT task attribute of another process.
The accessing process is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV)
and HISTORYREASON = 137 (NONLOCALACCEPTEVENTV).
ACCEPTEVENT ATTRIBUTE IS READONLY
A process attempted to assign an event variable to the ACCEPTEVENT task attribute.
The process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 9 (ATTREADONLYV).
8600 0502–407
3–3
ACCESSCODE
ACCESSCODE
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Object code file dominant
Supported
61
Synonym
None
Restrictions
None
Range
ÄÄÂÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄ / ÄÄ ÄÙ
These are both identifiers.
Explanation
The ACCESSCODE task attribute affects the ability of a nonprivileged process to access
files that have associated guard files. A guard file can specify that only processes with a
certain accesscode are allowed to access the file. For information about guard files, refer
to the MCP/AS Security Features Operations and Programming Guide.
You must include an accesscode password in your assigned value for ACCESSCODE if
the accesscode in your accesscode list has an associated password. However, you do
not need to include an accesscode password in your assigned value for ACCESSCODE if
the program you are accessing is either a tasking or an MCS program.
The accesscode password is not usually included in the value returned when
ACCESSCODE is read. However, if the ACCESSCODE value is read for a task variable
that has not yet been initiated, then the ACCESSCODE value returned includes the
password in an encoded form.
3–4
8600 0502–407
ACCESSCODE
The system performs validation to determine whether the ACCESSCODE value for a
process is compatible with the USERCODE task attribute value. When you assign
ACCESSCODE to a task variable that is not in use, the system does not perform this
validation until the task variable is used in a process initiation statement. When you
assign an ACCESSCODE value to an in-use process, the system performs the validation
immediately. The following is an outline of this validation:
1. If the process has a nonnull ACCESSCODE value, the system compares this value
with the ACCESSCODELIST usercode attribute. If the ACCESSCODE value does not
correspond to any of the accesscode/accesscode-password pairs in the
ACCESSCODELIST, the system discontinues the process and displays a “SECURITY
VIOLATION” message.
2. For a WFL job, the WFL compiler checks the usercode of the job to see if the
ACCESSCODENEEDED usercode attribute is set. If it is, the WFL compiler gives a
syntax error if the ACCESSCODE value of the job is null or does not correspond to
any of the values in the ACCESSCODELIST usercode attribute. (A WFL job can
receive an ACCESSCODE value at compile time either through inheritance or through
an assignment in the job attribute list.)
When you change the USERCODE value of an in-use process, the system changes the
ACCESSCODE value to a null string. Therefore, when changing the USERCODE and
ACCESSCODE values of an in-use process, you should make the USERCODE
assignment first and the ACCESSCODE assignment second. Refer to “USERCODE” for
details.
The ACCESSCODE task attribute cannot be transferred using task-to-task transfer if the
source task has been protected from modification, except by a tasking program. A task is
protected from modification when it is passed as a parameter to a library change or
approval procedure. While the change or approval procedure is active, access to the
MYSELF intrinsic generates a protected task.
Examples
The following are examples of ACCESSCODE assignment and interrogation in WFL. The
string variable STRVAR receives the value TDOT/.
TVAR (ACCESSCODE = TDOT / ALTO);
STRVAR := TVAR (ACCESSCODE);
The following is an example of ACCESSCODE assignment in ALGOL:
REPLACE TVAR.ACCESSCODE BY "TDOT/ALTO.";
The following is an example of ACCESSCODE assignment in COBOL74 or COBOL85:
CHANGE ACCESSCODE OF MYSELF TO "TDOT/ALTO.".
8600 0502–407
3–5
ACCESSCODE
Run-Time Errors
ACCESSCODE ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign ACCESSCODE a value that did not follow the proper
format of / . The process, if nonprivileged, is
discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON =
131 (INCORRECTSYNTAXV).
SECURITY VIOLATION
An attempt was made to assign an accesscode that does not exist, does not match the
accesscode password, or is not allowed for this usercode. The process, if nonprivileged,
is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON =
29 (SECURITYERRORV). The following entry is made in the system log: “INVALID TASK
ATTRIBUTE: ACCESSCODE”.
3–6
8600 0502–407
ACCUMIOTIME
ACCUMIOTIME
Type
Real
Units
See below
Range
Default
0 to about 4.31E+68
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
0
None (read-only)
Supported
14
PROCESSIOTIME
None
Explanation
The ACCUMIOTIME task attribute records the accumulated I/O time for the process.
The process is discontinued if the value of the ACCUMIOTIME task attribute reaches the
same value as the MAXIOTIME task attribute. Refer to the MAXIOTIME description for
details.
If ACCUMIOTIME is accessed through Host Services, bit 47 will always be 0 (zero).
Units
When accessed from WFL, the ACCUMIOTIME value is expressed in units of seconds.
When accessed from other languages, the value is expressed in units of 2.4
microseconds.
8600 0502–407
3–7
ACCUMPROCTIME
ACCUMPROCTIME
Type
Real
Units
See below
Range
Default
0 to about 4.31E+68
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
None (read-only)
Supported
13
PROCESSTIME
None
Explanation
The ACCUMPROCTIME task attribute records the accumulated processor time for the
task.
The process is discontinued if the value of the ACCUMPROCTIME task attribute reaches
the same value as the MAXPROCTIME task attribute. Refer to the MAXPROCTIME
description for details.
If ACCUMPROCTIME is accessed through Host Services, bit 47 will always be 0 (zero).
Units
When accessed from WFL, the ACCUMPROCTIME value is expressed in units of
seconds. When accessed from other languages, the value is expressed in units of 2.4
microseconds.
3–8
8600 0502–407
APPLYLIST
APPLYLIST
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
None
Read Time
Anytime
Write Time
Before initiation
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
None
Not supported
116
Synonym
None
Restrictions
None
Explanation
The APPLYLIST task attribute, if set, causes the system to apply task equations that
were previously placed in the MYPPB task attribute of the process for temporary
storage.
The MYPPB value can store task equations applied to a process, or task equations
intended to be applied to an object code file. Setting APPLYLIST to TRUE causes the
system to apply only those equations in MYPPB that are intended for a process. For
further information, refer to the discussion of the MYPPB task attribute.
Run-Time Errors
MYPPB IS EMPTY, NOTHING TO APPLY
An attempt was made to set the APPLYLIST attribute to TRUE while there were no
attribute assignments stored in the MYPPB task attribute. The assignment is ignored,
but the assigning process continues executing normally.
CANNOT APPLY : PPB IS FOR CODEFILE
This warning occurs if the APPLYLIST attribute is set to TRUE when the MYPPB task
attribute of the compiler process stores only attributes intended for the resulting object
code file. The assignment is ignored, but the assigning process continues executing
normally.
8600 0502–407
3–9
AUTORESTORE
AUTORESTORE
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Standard
Not supported
123
Synonym
None
Restrictions
None
Explanation
The AUTORESTORE task attribute specifies how the system should respond if the
process attempts to open a disk file that is not present on the requested family.
If AUTORESTORE is TRUE when a process encounters a NO FILE condition for a disk
file, then the system might initiate a dependent process called ARCHIVE/AUTORESTORE
to copy the missing file from backup tape to disk. The system starts
ARCHIVE/AUTORESTORE if all of the following conditions are true:
3–10
•
The AUTORESTORE system option has a value of either YES or DONTCARE. An
operator can use the AUTORESTORE (Archiving Autorestore Option) system
command to assign this option.
•
The reference to the file would normally produce a “NO FILE” RSVP message if the
file is not resident. Thus, for example, interrogating the RESIDENT file attribute does
not cause an automatic restore to take place.
•
The archive directory references a backup tape that contains a backup copy of the
requested file. The archive directory records the location of files backed up through
the WFL ARCHIVE command.
•
The FILENAME file attribute of the requested file specifies the same usercode as the
USERCODE attribute of the requesting process.
•
If the file is a cataloged file, then the generation of the file being requested matches
the file listed in the archive directory.
•
The process is not attempting to open a logical file that has the file attribute
DUPLICATED = TRUE.
8600 0502–407
AUTORESTORE
If the system does initiate an ARCHIVE/AUTORESTORE, the process requesting the file
remains in an active state. On the other hand, ARCHIVE/AUTORESTORE becomes
suspended and appears in the W (Waiting Mix Entries) system command display. The
RSVP message identifies the backup tape that the operator should mount. When the
operator mounts the requested tape, ARCHIVE/AUTORESTORE copies the missing file
back to disk. The process that originally tried to use the file then resumes execution.
If the AUTORESTORE task attribute is FALSE, the system does not initiate
ARCHIVE/AUTORESTORE. Instead, the system suspends the process and displays a
“NO FILE ” or a “NO FILE FIND ON “
RSVP message.
For an overview of the system archiving and AUTORESTORE features, refer to the
System Administration Guide.
Default
If the AUTORESTORE system option is set to NEVER or DONTCARE, then the default
value of the AUTORESTORE task attribute is FALSE. If the AUTORESTORE system
option is set to YES, then the default value of the AUTORESTORE task attribute is TRUE.
If the value of the AUTORESTORE system option is changed while the process is
running, the change has no effect on the value of the task attribute AUTORESTORE.
8600 0502–407
3–11
AUTOSWITCHTOMARC
AUTOSWITCHTOMARC
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
Anytime
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Object code file dominant
Not supported
102
Synonym
None
Restrictions
None
Explanation
The AUTOSWITCHTOMARC task attribute affects only processes initiated by a MARC
session and that open a remote file. For these processes, AUTOSWITCHTOMARC
specifies whether the originating screen is automatically displayed when the process
terminates.
If AUTOSWITCHTOMARC is TRUE, the originating screen is displayed immediately upon
termination of the process. If AUTOSWITCHTOMARC is FALSE, the remote file screen
continues to be displayed after process termination, until the user presses the XMIT or
SPCFY key.
If this task attribute is assigned more than once, only the last assignment before process
termination has effect.
For more information about MARC tasking and remote files, refer to the discussion of
tasking from interactive sources in the Task Management Programming Guide.
3–12
8600 0502–407
AX
AX
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Never
Write Time
Anytime
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
See below
Not supported
129
Synonym
None
Restrictions
None
Range
A string of up to 255 EBCDIC characters.
Explanation and Overwrite Rules
The AX task attribute passes a string of text to a process. The receiving process can
read the AX string by executing an ACCEPT statement. The ACCEPT statement returns
an AX string, which is a string specified for a process by either an AX (Accept) system
command or an AX task attribute assignment.
If more than one AX string is submitted for a process before the process performs its
next ACCEPT statement, then the system must either queue the extra AX strings or
discard them. You can use the QUEUEDAX option of the SYSOPS (System Option)
system command to enable or disable queuing of AX strings. If QUEUEDAX is set, then
the system queues up to 250 AX strings for a process. If QUEUEDAX is reset, then each
AX command overwrites any pending AX string for a process.
QUEUEDAX is set TRUE by default on ClearPath systems.
When multiple AX strings are queued for a process, the system stores the strings in
chronological order. Each ACCEPT statement reads the oldest AX string queued for the
process.
8600 0502–407
3–13
AX
The system passes each AX string to the next ACCEPT statement performed by the
process stack, regardless of whether the process stack is executing library program code
or user program code. Therefore, when you write ACCEPT statements in exported library
procedures, remember that the ACCEPT statement might receive an AX string that was
previously queued for the user process.
Examples
The AX task attribute can assign a string value on a WFL RUN statement:
RUN OBJECT/PROGA;AX="1"
This causes an AX string with a length of one character to be queued for the process.
In WFL, a RUN statement can include multiple AX task equations. If the QUEUEDAX
system option is set, then the system queues all the AX assignments for later use by the
program as in the following example:
RUN OBJECT/PROGA;
AX = "DELTA";
AX = "EPSILON";
AX = "GAMMA";
If QUEUEDAX is not set, then the system passes only the last AX assignment to the
program.
The following statement shows the ALGOL syntax for AX assignments:
REPLACE T.AX BY "DELTA";
In COBOL74 and COBOL85, the equivalent statement has the following form:
CHANGE ATTRIBUTE AX OF T TO "DELTA".
Because AX assignments do not cause the ACCEPTEVENT, a program cannot use an
interrupt to detect the presence of AX strings supplied through task equation. Instead, a
program can include conditional ACCEPT statements to process the AX task equations,
as in the following ALGOL example:
100
110
120
130
140
150
160
170
180
190
200
3–14
BEGIN
ARRAY A[0:14];
INTERRUPT INT;
BEGIN
ACCEPT (A);
DISPLAY (A);
REPLACE POINTER(A) BY 0 FOR 15 WORDS;
END;
ATTACH INT TO MYSELF.ACCEPTEVENT;
WHILE ACCEPT(A) DO DISPLAY(A);
ENABLE INT;
8600 0502–407
AX
210 WAITANDRESET (MYSELF.EXCEPTIONEVENT);
220 END.
In this example, the statement at line 190 detects AX strings submitted through task
equations. The interrupt attached at line 180 detects AX system commands. Note that
this example does not detect any assignments to the AX task attribute made after the
program is initiated.
Run-Time Errors
AX ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign an AX string value that was more than 255 characters
long or that was not terminated by a null character. The assigning process is
discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON =
131 (INCORRECTSYNTAXV).
AX ATTRIBUTE IS WRITEONLY
A process attempted to read an AX message. AX messages can only be read through
the ACCEPT mechanism. The process is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 129 (ATTWRITEONLYV).
8600 0502–407
3–15
BACKUPFAMILY
BACKUPFAMILY
Type
String
Units
Not applicable
Range
See below
Default
See below
Read Time
Anytime
Write Time
Before initiation
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Object code file dominant
Not supported
63
Synonym
None
Restrictions
None
Explanation
The BACKUPFAMILY task attribute specifies the disk family where the system should
place print and punch backup files created by the process.
The BACKUPFAMILY task attribute affects only backup files with a BACKUPKIND file
attribute value that is equated to DLBACKUP by the SB (Substitute Backup) system
command. For an illustration of this restriction, refer to the examples at the end of this
subsection.
The effect of the BACKUPFAMILY task attribute can be overridden for individual backup
files by the FAMILYNAME print attribute. For an introduction to printing issues, refer to
the discussion of controlling process I/O usage in the Task Management Programming
Guide.
Default
The BACKUPFAMILY value defaults to the current DL BACKUP family defined by the
DL (Disk Location) system command.
Range
The BACKUPFAMILY value typically must conform to the syntax for as
defined under “Format of the Descriptions” in this section.
However, when BACKUPFAMILY is assigned by an MCS or tasking program, the value
can optionally be in standard form. For an explanation of standard form, refer to the
description of the DISPLAYTOSTANDARD function in the Unisys e-@ction ClearPath
3–16
8600 0502–407
BACKUPFAMILY
Enterprise Servers DCALGOL Programming Reference Manual. The system extracts the
first identifier from the standard form value and uses this as the BACKUPFAMILY.
Inheritance
A process inherits its parent's BACKUPFAMILY value if the parent has a non-null value
and the process is running on the same host as its parent.
If you explicitly assign a null string to the BACKUPFAMILY attribute, the attribute
receives the DL BACKUP value in effect at process initiation. The DL BACKUP setting is
specified by the DL (Disk Location) system command.
A process initiated from a MARC session receives the BACKUPFAMILY value associated
with that session.
Examples
Suppose an operator has used the SB (Substitute Backup) system command to create
the following SB settings for the system:
SB
DISK = DLBACKUP
PACK = PACK
TAPE = TAPE
Suppose also that an operator has used the DL (Disk Location) system command to
create the following DL BACKUP setting for the system:
DISK LOCATION:
BACKUP
ON DBFAM
The following WFL job creates a backup file:
100 ?BEGIN JOB;
110
BACKUPFAMILY = SYSPK;
120
FILE F(KIND=PRINTER,BACKUPKIND=DISK);
130
OPEN(F);
140
LOCK(F);
150 ?END JOB
Line 120 of the WFL job specifies a BACKUPKIND value of DISK; but the SB setting
equates DISK to DLBACKUP. The DL BACKUP setting in turn is DBFAM. Thus, by default
the printer backup file would have been created on DBFAM. However, the
BACKUPFAMILY statement at line 110 overrides the DL BACKUP family and causes the
backup file to be created on SYSPK instead.
8600 0502–407
3–17
BACKUPFAMILY
Now suppose that line 120 of the WFL job is changed to specify a BACKUPKIND of
PACK for the backup file. The following is the modified WFL job:
100 ?BEGIN JOB;
110
BACKUPFAMILY = SYSPK;
120
FILE F(KIND=PRINTER,BACKUPKIND=PACK);
130
OPEN(F);
140
LOCK(F);
150 ?END JOB
This version of the job specifies a BACKUPKIND value of PACK. The SB setting equates
PACK to PACK, and the backup file is created on the family called PACK. The system
ignores the BACKUPFAMILY assignment in the WFL job because BACKUPFAMILY
affects only backup files that are redirected to the DL BACKUP family by an SB
substitution.
Run-Time Error
BACKUPFAMILY ATTRIBUTE MAY ONLY BE SET BY AN MCS OR TASKING
PROGRAM
A process that was not an MCS or tasking program attempted to assign a value to
BACKUPFAMILY. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 54
(ONLYMCSTASKINGV).
3–18
8600 0502–407
BDNAME
BDNAME
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
Standard
Supported
29
BACKUPPREFIX
None
Range
ÚêÄÄÄÄÄÄÄÄ / ÄÄÄÄÄÄÄ¿
ÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÁÄ/9\ÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÃÄ ( ÄÄÄÄ ) Ä´
ÀÄ * ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Explanation
The BDNAME task attribute causes backup files declared by the process to be
permanently saved under the file name prefix specified by the BDNAME value and
prevents the backup files from being automatically queued for printing. The user can print
out the backup files later by using a WFL PRINT statement.
If BDNAME is used by a nonprivileged process, backup files are saved under the
usercode of the process that declares the file. An error results if a nonprivileged process
attempts to assign a BDNAME value that includes a usercode different from the process
usercode, or an asterisk (*) in place of a usercode.
A privileged process can include a different usercode or an asterisk (*) at the start of the
BDNAME value and thus create backup files that do not have the same usercode as the
process.
The titles of the backup files follow the normal backup file titling conventions, except that
a usercode or asterisk (*) and the BDNAME value replaces the usual prefix of *BD or
*BP. For a discussion of backup file titling conventions, refer to the discussion of
controlling process I/O usage in the Task Management Programming Guide.
8600 0502–407
3–19
BDNAME
File names can be a maximum of 12 nodes long, not counting the usercode. However,
the BDNAME value should not be that long because the system adds two or more nodes
to the BDNAME value when constructing the file title. In most cases, the system adds
three nodes to the title.
If the BDNAME value is changed after initiation, only backup files opened after the
change are affected.
Note that the BDNAME task attribute affects only backup files declared by the process.
Any backup files written to by the process, but declared by another process, are not
affected.
When originally implemented, the BDNAME task attribute had effect only if the BDBASE
option of the OPTION task attribute was set. This is no longer the case; whether the
BDBASE option is set or not set has no effect on the BDNAME task attribute.
The BDNAME task attribute has no effect on the job summary. For information about
saving a copy of the job summary on disk, refer to the description of the
JOBSUMMARYTITLE task attribute.
The effects of the BDNAME task attribute can also be achieved using several print
attributes. For information about the interaction of BDNAME and these print attributes,
refer to the discussion of controlling process I/O usage in the Task Management
Programming Guide.
Run-Time Errors
BDNAME ATTRIBUTE IS READONLY ON ACTIVE TASK
A process attempted to change the BDNAME value of another in-use process. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYONACTIVEV).
BDNAME ATTRIBUTE INCORRECT SYNTAX
BDNAME was assigned a value that does not conform to the backup prefix format. The
assigning process is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 131 (INCORRECTSYNTAXV).
FILE OPEN ERROR: TOO MANY NAMES
This error occurs when the backup file is opened if the BDNAME value caused the
backup file title to have more than the allowed number of nodes. The process is
discontinued with HISTORYCAUSE = 8 (SOFTIOERRCAUSEV) and HISTORYREASON =
18 (GTR14ERR).
3–20
8600 0502–407
BLOCKCREDENTIALS
BLOCKCREDENTIALS
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
See below
Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
Standard
Not supported
146
BLOCKCREDS
None
Explanation
The BLOCKCREDENTIALS attribute is used by a task to temporarily inhibit use of its
credentials. This is useful, for example, during the execution of external or library
functions. Any procedure called while BLOCKCREDENTIALS is TRUE does not have
access to the stack’s credentials. Such procedure is also unable to set
BLOCKCREDENTIALS to FALSE, because the stack level from which
BLOCKCREDENTIALS was set to TRUE is recorded.
All processes initiated while credentials of the task owner are blocked do not inherit
credentials. All processes initiated with their own BLOCKCREDENTIALS set to TRUE
inherit credentials but cannot use them until the task’s parent sets the value to FALSE.
For information about credential management and Generic Security Service Application
Program Interface (GSS-API), see Appendix G in the Security Administration Guide.
Write Time
BLOCKCREDENTIALS may be updated before initiation by the parent of the task or, after
initiation, by the task itself. If BLOCKCREDENTIALS is updated by the task itself, it may
be set to
•
TRUE only if the current value is FALSE.
•
FALSE only if it was previously set to TRUE from an equal or higher stack offset
(deeper nested program code location).
8600 0502–407
3–21
BLOCKCREDENTIALS
Example
LIBRARY LIB;
PROCEDURE PROC;
LIBRARY LIB;
MYSELF.BLOCKCREDENTIALS := TRUE;
PROC; %% Ensure that PROC cannot use my client credentials
MYSELF.BLOCKCREDENTIALS := FALSE;
3–22
8600 0502–407
BOTTIMESTAMP
BOTTIMESTAMP
Type
Real
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
None
Host Services
Attribute Number
Supported
159
Synonym
None
Restrictions
None
Explanation
The BOTTIMESTAMP task attribute is a read-only attribute that returns the date and time
the task began execution in the following format:
0 & (JULIANDATE-70000) [47:16] & (TIME(11) DIV 16) [31:32]
For a task that has not been initiated or that has terminated, this attribute returns 0
(zero).
Note: This Julian date is in YYYDDD format where the value changes from 099365 to
100001 at midnight on December 31, 1999.
8600 0502–407
3–23
BRCLASS
BRCLASS
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
NOBR
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
None
Object code file dominant
Not supported
83
Synonym
None
Restrictions
None
Explanation
The BRCLASS task attribute controls how the process responds to a BR (Breakout)
system command. The operator can use the BR command to initiate a checkpoint for an
in-use process. For a general discussion of checkpointing, refer to the discussion of
restarting jobs and tasks in the Task Management Programming Guide.
This attribute is meaningful only if the CHECKPOINTABLE attribute is TRUE. Refer to the
CHECKPOINTABLE description for details.
The following are the possible values and their meanings:
3–24
Mnemonic
Value
Integer
Value
NOBR
0
The operator is not allowed to initiate a checkpoint
for this process.
ONCEONLY
1
The operator can initiate a checkpoint for this
process. The process is not allowed to continue
after the checkpoint. The recovery files created by
an operator BR (Breakpoint) system command are
removed as soon as the RERUN statement has
completed. This restriction prevents a process from
being restarted more than once from this
checkpoint.
Meaning
8600 0502–407
BRCLASS
Mnemonic
Value
Integer
Value
MULTIPLE
2
Meaning
The operator can initiate a checkpoint for this
process. The process is allowed to continue
execution after the checkpoint.
Note: The MULTIPLE value has effect only if it is
set for the parent WFL job as well as for the
checkpointed process.
The BRCLASS attribute is reset to NOBR when the process terminates.
Example
In the following WFL job, the job attribute list assigns the job a BRCLASS value of
MULTIPLE. This value is inherited by OBJECT/PROGDATA, which becomes eligible for
multiple operator checkpoints.
?BEGIN JOB;
BRCLASS = MULTIPLE;
RUN OBJECT/PROGDATA;
?END JOB
Run-Time Error
BRCLASS ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign BRCLASS either an invalid mnemonic or a value less
than 0 or greater than 2. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
8600 0502–407
3–25
CHARGE
CHARGE
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
See below
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
From parent
Standard
Supported
42
CHARGECODE
None
Range
ÚêÄÄÄÄÄÄÄÄ / ÄÄÄÄÄÄÄÄ¿
ÄÄÁÄ/12\ÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
Explanation
The CHARGE task attribute contains the charge code of the process. The system logs
the charge code information for each process. This information can be used by a log
analysis program that computes billing charges at a site. For further information about
billing, refer to the System Administration Guide.
When a process is initiated, the system examines the USERCODE task attribute of the
process and examines the usercode definition in the USERDATAFILE to determine
whether the CHARGEREQ usercode attribute is set. If not, any CHARGE task attribute is
accepted. If CHARGEREQ is set, the system performs the following steps to determine
whether the CHARGE task attribute value is legal for the process. Remember when
reading these steps that the system applies any inherited value to the process before
making the following checks:
3–26
•
If the CHARGE value of the process is null, the system discontinues the process.
•
If the CHARGE value of the process is not null, the system compares the value with
the CHARGECODE usercode attribute. If the CHARGE value does not correspond to
any of the values stored in the CHARGECODE usercode attribute, the system
discontinues the process.
8600 0502–407
CHARGE
•
For a WFL job, the WFL compiler checks the usercode of the job to see if the
CHARGEREQ usercode attribute is set. If it is, the WFL compiler gives a syntax error
if the CHARGE value of the job is null. The WFL compiler also gives a syntax error if
the CHARGE value of the job is not null and does not correspond to any of the values
in the CHARGECODE usercode attribute. (A WFL job can receive a CHARGE value at
compile time either through inheritance or through an assignment in the job attribute
list.)
Write Time
In general, CHARGE can be assigned only before a process is initiated.
However, processes with MCS or tasking privileges can change the CHARGE value at
any time. Note that the system validates the CHARGE value only when a process is
initiated. Therefore, an MCS or tasking process should check the validity of a new
CHARGE value before assigning it to any running process. If an MCS or tasking process
assigns an invalid CHARGE value to a running process, the operating system allows that
process to run with a CHARGE that would not normally be permitted.
Inheritance
A process inherits the CHARGE value of its parent.
For library processes initiated by the library linkage mechanism, the USERCODE attribute
inherits the USERCODE value of the process that is linking to the library.
The system administrator can assign one or more charge codes to the CHARGECODE
attribute of a usercode. If the system administrator also sets the USEDEFAULTCHARGE
attribute of the usercode, then MARC or CANDE sessions receive the first charge code
from the CHARGECODE usercode attribute at log-on time. Otherwise, MARC or CANDE
requests the user to enter a charge code. Processes initiated from a MARC or CANDE
session inherit the CHARGE value of the session.
A WFL job inherits a charge code from the usercode definition if all the following
conditions are true:
•
The job attribute list includes a USERCODE assignment or inherits the usercode of
the initiating source (such as an ODT that has a terminal usercode).
•
The job attribute list did not include a CHARGE assignment and the job was
submitted from a source that had no CHARGE value associated with it. (An ODT is
an example of such a source.)
•
The system administrator has assigned CHARGECODE and USEDEFAULTCHARGE
attributes to the usercode.
8600 0502–407
3–27
CHARGE
Run-Time Errors
CHARGECODE ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign CHARGE a value that was not in simple name format. If
the assigning process is nonprivileged, it is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
CHARGECODE READONLY ON ACTIVE TASK, NOT CHANGED
An attempt was made to change the CHARGE value after initiation. This is a warning
message rather than an error message. The process continues normally, but the
requested change is not made.
INVALID CHARGECODE
The charge code assigned at initiation is not allowed for this usercode. The new process
(not the assigning process) is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 14 (INVALIDCHARGECODEV).
3–28
8600 0502–407
CHECKPOINTABLE
CHECKPOINTABLE
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
82
Synonym
None
Restrictions
None
Explanation
The CHECKPOINTABLE task attribute specifies whether a checkpoint can be initiated for
this process.
A value of TRUE indicates that a checkpoint can be initiated for this process. This value
does not guarantee that the checkpoint will be executed successfully. The checkpoint
can fail because of factors that are not reflected by the CHECKPOINTABLE value.
A value of FALSE indicates that the task is not allowed to execute a checkpoint.
The value of this attribute is computed at the time it is accessed.
The system evaluates the following conditions once. If any are true, the system sets the
CHECKPOINTABLE attribute to FALSE for the life of the process:
•
The process is an MCS or a process initiated by an MCS. This category includes
processes initiated from sessions.
•
The process is a frozen library. (For information about libraries, refer to the Task
Management Programming Guide.)
•
The process was not initiated by a RUN statement in a WFL job.
•
The code was not compiled by one of the following compilers:
−
ALGOL, DCALGOL, DMALGOL, or BDMSALGOL
−
COBOL74 or BDMSCOBOL
8600 0502–407
3–29
CHECKPOINTABLE
In addition, at every access of the attribute the system checks to see whether the
process has any offspring. If so, CHECKPOINTABLE returns a value of FALSE.
Another task attribute related to checkpointing, called BRCLASS, is discussed elsewhere
in this manual. For more information about checkpointing, refer to the discussion of
restarting jobs and tasks in the Task Management Programming Guide.
3–30
8600 0502–407
CLASS
CLASS
Type
Integer
Units
Not applicable
Range
0 through 1023
Default
See below
Read Time
Anytime
Write Time
See below
Inheritance
See below
Fork() Inheritance
0
Overwrite Rules
See below
Host Services
Supported
Attribute Number
Synonym
Restrictions
34
QUEUE
None
Explanation
For WFL jobs or descendants of WFL jobs, the CLASS task attribute specifies the
number of the job queue from which the WFL job is initiated. For processes not
descended from WFL jobs, CLASS stores a value of 0.
The CLASS task attribute is only one of many factors affecting the job queue chosen for
a WFL job. The system compares any user-specified CLASS value with the job queue
definitions and terminates the WFL job if the specified CLASS is not appropriate. The
system also terminates the WFL job if its CLASS value is not allowed by the CLASSLIST,
ANYOTHERCLASSOK and CLASS attributes of the WFL job's usercode.
If a CLASS value is not explicitly assigned, the system selects a queue for the WFL job.
The job queue selection depends on such factors as the system default queue
specification, the usercode definition, and any resource limits set for the job queue.
For a detailed explanation of job queues, refer to the System Administration Guide.
Write Time
The CLASS task attribute can be assigned only in WFL jobs. Within a WFL job, CLASS
can be assigned only in the job attribute list.
Overwrite Rules
This attribute can be assigned only in the job attribute list of a WFL job. For information
about job attribute lists, refer to the Work Flow Language (WFL) Programming Reference
Manual.
8600 0502–407
3–31
CLASS
Inheritance
A WFL job inherits a CLASS value from the usercode definition if all the following
conditions are true:
•
The job attribute list includes a USERCODE assignment or the job has inherited the
usercode of the initiating source (such as an ODT that has a terminal usercode).
•
The job attribute list did not include a CLASS assignment, and the job was submitted
from a source that had no CLASS value associated with it. An example of such a
source is an ODT that has no UQ (Unit Queue) assignment and no terminal usercode.
•
The system administrator has assigned a CLASS value to the usercode.
Descendants of WFL jobs inherit the CLASS value of the job. However, because only
WFL jobs go through the job queue mechanism, the CLASS value has no effect on the
descendants.
Example
The following is an example of a CLASS assignment in the job attribute list of a WFL job:
?BEGIN JOB;
CLASS = 2;
RUN OBJECT/X;
?END JOB
3–32
8600 0502–407
CONVENTION
CONVENTION
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
120
Synonym
None
Restrictions
None
Range
ÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄÁÄ/16\ÄÂÄÄÂÄÁÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Explanation
The CONVENTION task attribute specifies the date, time, and currency conventions used
by a process.
This task attribute affects only processes that use the CENTRALSUPPORT library to
handle conventions for localization. When a process invokes a conventions procedure in
the CENTRALSUPPORT library, the process can optionally use parameters to specify the
convention that is desired. If the process does not request a convention in the procedure
parameters, the CONVENTION task attribute of the user process determines the
convention that is used.
Changes made to the value of this attribute take effect immediately. That is, subsequent
calls to the conventions procedures in CENTRALSUPPORT use the new value of
CONVENTION.
However, if the job attribute list also contains a PRINTDEFAULTS assignment, the
PRINTDEFAULTS attribute of the usercode is ignored.
For further information about the CENTRALSUPPORT library, refer to the Unisys e-@ction
ClearPath Enterprise Servers MultiLingual System Administration, Operations, and
Programming Guide.
8600 0502–407
3–33
CONVENTION
Default and Inheritance
A process inherits the CONVENTION value of its parent.
The default convention is ASERIESNATIVE. If you purchase your system through an
international subsidiary, they may have already altered the CENTRALSUPPORT library to
provide a different default convention. The system administrator can establish a different
default convention value for the whole system by using the SYSOPS (System Options)
system command.
The system administrator can selectively override the system default convention by
including a CONVENTION attribute in usercode definitions in the USERDATAFILE. This
CONVENTION value does not directly affect processes, but it is inherited by MARC and
CANDE sessions with that usercode. The user can also use the MARC or CANDE
CONVENTION command to change the convention of a session. Processes initiated from
the session inherit the current convention of the session.
The CONVENTION attribute of a usercode also is inherited by WFL jobs that are assigned
that usercode in the job attribute list.
Example
Processes that differ only in the conventions they use can benefit from this task
attribute.
For example, a company might have a program that needs to print invoices for
customers in several different countries. The invoices have to be printed using the
conventions of each country. The following ALGOL statements run the program three
times, assigning a different CONVENTION value to each run:
REPLACE T1.CONVENTION BY "UNITEDKINGDOM1.";
CALL DONOTHING [T1];
REPLACE T2.CONVENTION BY "FRANCELISTING.";
CALL DONOTHING [T2];
REPLACE T3.CONVENTION BY "EUROPEANSTANDARD.";
CALL DONOTHING [T3];
Each of these processes calls the appropriate CENTRALSUPPORT library procedures to
format date, time, and currency information while generating invoices appropriate for
each country.
3–34
8600 0502–407
CORE
CORE
Type
Integer
Units
Words
Range
Default
0 to 1048575
See below
Read Time
Anytime (except in WFL)
Write Time
See below
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
From parent
Standard
Not supported
2
COREESTIMATE
See below
Explanation
The CORE task attribute provides an estimate of the amount of main memory that a
process needs for code and data areas in order to execute efficiently. The system
schedules a new process if the CORE value exceeds the amount of available memory.
You can override the default core estimate by assigning a different value to this task
attribute.
For more information, refer to the discussion of controlling process memory usage in the
Task Management Programming Guide.
Default
The default value of CORE is taken from compiler and operating system core estimates
that are stored in the object code file. For information about these estimates, refer to the
discussion of process memory usage in the Task Management Programming Guide.
Write Time
The CORE task attribute can be written at any time. However, the CORE value is used
only at initiation time. Assignments made to CORE after initiation have no effect on the
process.
8600 0502–407
3–35
CORE
Restrictions
In WFL, CORE can be assigned separate data core and code core values or a single total
core value. Other sources can assign CORE only a single value, which is a data core
estimate.
The CORE task attribute cannot be read in WFL.
Examples
The following WFL statement initiates the program OBJECT/PROG and assigns CORE a
data estimate of 3000 and a code estimate of 1300:
RUN OBJECT/PROG;
CORE = (3000,1300);
The following WFL statement initiates the program OBJECT/PROG and assigns CORE a
total memory estimate of 4300:
RUN OBJECT/PROG;
CORE = 4300;
Run-Time Error
CORE ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign CORE a value outside the allowed range. The assigning
process, if nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV)
and HISTORYREASON = 131 (INCORRECTSYNTAXV).
3–36
8600 0502–407
COUNTRY
COUNTRY
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Not supported
157
Synonym
None
Restrictions
None
Explanation
The COUNTRY task attribute specifies the country identifier associated with the process.
Be careful when you enter a value for the COUNTRY task attribute because no checks
are made against locally defined values. Instead, the system accepts any combination of
letters and numbers that conforms to the syntax. For more information
about the syntax, refer to the System Commands Operations Reference Manual.
Default and Inheritance
The COUNTRY task attribute is inherited from the parent. The default value for the
COUNTRY task attribute is UNITEDSTATES. The system administrator can establish a
different default COUNTRY value by using the SYSOPS (System Options) system
command.
8600 0502–407
3–37
CREDENTIALS
CREDENTIALS
Type
Integer
Units
Not applicable
Range
Default
See below
0
Read Time
Anytime
Write Time
See below
Inheritance
See below
Overwrite Rules
Not applicable
Host Services
Not supported
Attribute Number
147
Synonym
None
Restrictions
None
Explanation
The CREDENTIALS task attribute identifies the mix number of the entity that
authenticated the task’s identity. This attribute is used for security verification purposes.
For information about credential management and Generic Security Service Application
Program Interface (GSS-API), see Appendix G in the Security Administration Guide.
Range
A valid mix number.
Write Time
Only stacks with PP:TASKING privilege are allowed to assign a value to CREDENTIALS.
Inheritance
If INHERITCREDENTIALS is set to TRUE, a non-zero value is inherited. If
CREDENTIALSBASE is set to FALSE, CREDENTIALS is set to the task parent’s mix
number. If CREDENTIALSBASE is set to TRUE, or the task is an independent task,
CREDENTIALS is set to the mix number of the task and credentials are copied to that
mix number.
3–38
8600 0502–407
CREDENTIALS
Example
%% Tasking Program Dependent Process Initiation:
REPLACE CLIENT_TASK.USERCODE BY CLIENT_USERDATA;
REPLACE CLIENT_TASK.ACCESSCODE BY CLIENT_ACCESSCODE;
REPLACE CLIENT_TASK.CHARGECODE BY CLIENT_CHARGECODE;
CLIENT_TASK.CREDENTIALS := CLIENT_CREDENTIALS;
PROCESS PROC [CLIENT_TASK];
%% Proc can perform actions on behalf of Client.
%% Tasking Program Worker Process:
%% Assume Client USERCODE (call USERCODE)
%% Assume Client ACCESSCODEASSESSCODE (call USERDATA)
REPLACE MYSELF.CHARGECODE BY CLIENT_CHARGECODE;
MYSELF.CREDENTIALS := CLIENT_CREDENTIALS;
%% Perform actions on behalf of client
%% All client's credentials are usable at this point
MYSELF.CREDENTIALS := 0;
%% Even though USERCODE, ACCESSCODE, and CHARGECODE are still in effect,
%% the client's credentials can no longer be used.
8600 0502–407
3–39
CREDENTIALSBASE
CREDENTIALSBASE
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
Before initiation
Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Standard
Supported
148
Synonym
None
Restrictions
None
Explanation
The CREDENTIALSBASE task attribute controls whether the task is to be regarded as a
new base for acquiring credentials.
CREDENTIALSBASE is evaluated only when a dependent task is initiated with
INHERITCREDENTIALS set to TRUE. In these circumstances, if CREDENTIALSBASE is
set to TRUE, all credentials are copied from the parent task. Otherwise, they are shared
with the parent task. This is required if a task initiated from a session needs to use
server credentials. If the task were to share credentials with the session that initiated it,
any new credentials acquired by the task would also be shared by the parent session.
This is not permitted: a session is explicitly limited to a single set of credentials.
For information about credential management and Generic Security Service Application
Program Interface (GSS-API), see Appendix G in the Security Administration Guide.
Examples
The following examples show the syntax used to run a program that needs to use server
credentials:
•
To run a program, from MARC or CANDE, that needs to use server credentials, enter
the following command:
RUN SYSTEM/SPECIAL/SERVICE; CREDENTIALSBASE
•
To run a program, from MARC or CANDE, that needs to use server credentials but is
not allowed to use the credentials of a particular user’s session, enter the following
command:
RUN SYSTEM/SPECIAL/SERVICE; CREDENTIALSBASE; INHERITCREDENTIALS = FALSE
3–40
8600 0502–407
CURRENTDIRECTORY
CURRENTDIRECTORY
Type
String
Units
Not applicable
Range
Default
or
Null string, which is interpreted as "/"
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Not supported
137
Synonym
None
Restrictions
None
Range
ÄÄ / ÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÙ
ÚêÄÄÄÄÄÄÄ / ÄÄÄÄÄÄÄ¿
ÄÄÁÄ/13\ÄÄÁÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄ / ÄÙ
A sequence of 1 to 17 EBCDIC characters whose values are greater than or equal to
4'40', except for the slash [/], double quote ["], and left parenthesis [(]. This set includes
uppercase and lowercase letters, digits, and most special characters.
Note: Blank spaces are treated as significant when included in the
CURRENTDIRECTORY value. For example, a CURRENTDIRECTORY value of “/A / B”
does not match a directory path named “/A/B”.
Explanation
The CURRENTDIRECTORY task attribute specifies a directory to be used as the prefix for
relative pathnames referenced by this process.
A pathname is a file title that is encoded in a way defined by the POSIX standard.
Pathnames are stored in the PATHNAME file attribute. The TITLE file attribute and the
PATHNAME file attribute store the same value, but in a different format. Changes to the
8600 0502–407
3–41
CURRENTDIRECTORY
PATHNAME file attribute are immediately reflected by the TITLE file attribute, and vice
versa. For example, the following two WFL statements are equivalent:
F(TITLE = (JASMITH)DATA/TEST/ONE ON MYFAM);
F(PATHNAME = "/-/MYFAM/USERCODE/JASMITH/DATA/TEST/ONE");
There are two types of pathnames:
•
Absolute pathnames, which begin with the root directory, end with the file name,
and include all the subdirectories leading from the root directory to the file name.
Absolute pathnames always begin with a slash, signifying the root directory. For
example, the following is an absolute pathname:
"/-/MYFAM/USERCODE/JASMITH/DATA/TEST/ONE"
•
Relative pathnames, which are a short cut method you can use for specifying file
names that are nested under a common directory. Relative pathnames omit the
root directory and one or more of the leftmost subdirectories, which are supplied by
the CURRENTDIRECTORY task attribute instead. The following are relative
pathnames that could refer to the same file as the previous example, if used
together with appropriate CURRENTDIRECTORY values:
"-/MYFAM/USERCODE/JASMITH/DATA/TEST/ONE"
"MYFAM/USERCODE/JASMITH/DATA/TEST/ONE"
"USERCODE/JASMITH/DATA/TEST/ONE"
"DATA/TEST/ONE"
"TEST/ONE"
"ONE"
TITLE file attribute assignments result in an absolute PATHNAME value if the TITLE
assignment contains a usercode or a family name. Otherwise, TITLE assignments result
in a relative PATHNAME value. The following table shows TITLE assignments and the
resulting PATHNAME values:
3–42
TITLE Assignment
Resulting PATHNAME
Absolute or Relative
(JASMITH)A/B
/USERCODE/JASMITH/A/B
Absolute
A/B ON MYFAM
/-/MYFAM/A/B
Absolute
A/B
A/B
Relative
8600 0502–407
CURRENTDIRECTORY
When POSIX search rules are used, the system combines relative pathnames with the
CURRENTDIRECTORY value to create resolved pathnames at file open time. If you want
to use POSIX search rules for relative pathnames in your program, you need to do the
following:
•
Ensure that a root family has been defined for your system by the DL ROOT form of
the DL (Disk Location) system command.
•
Ensure that the CURRENTDIRECTORY task attribute has a value corresponding to
the left part of the pathname.
•
Assign the SEARCHRULE file attribute of each file a value of POSIX.
•
Assign relative pathnames by way of the PATHNAME or TITLE file attributes.
For example, consider the following WFL statements:
MYSELF (CURRENTDIRECTORY = "/-/MYFAM/USERCODE/JASMITH/DATA");
FILE F1(SEARCHRULE = POSIX, PATHNAME = "TEST/ONE");
FILE F2(SEARCHRULE = POSIX, PATHNAME = "REPORT/BRIEF");
The preceding statements have the same effect as the following statements:
FILE F1(SEARCHRULE
PATHNAME =
FILE F2(SEARCHRULE
PATHNAME =
= POSIX,
"/-/MYFAM/USERCODE/JASMITH/DATA/TEST/ONE");
= POSIX,
"/-/MYFAM/USERCODE/JASMITH/DATA/REPORT/BRIEF");
The SEARCHRULE = POSIX assignment has two side effects that you should be aware
of:
•
The FAMILY task attribute is ignored. The family, if not specified in the resolved
pathname, defaults to the DL ROOT family.
•
If the resolved pathname does not include a usercode, the system searches for or
creates the file only as a nonusercoded (*) file. By contrast, when SEARCHRULE =
NATIVE, the system searches for the file under the usercode of the process first.
If the SEARCHRULE value is NATIVE, rather than POSIX, then the system conducts the
file search based on native rules, and the CURRENTDIRECTORY value is ignored.
For further information about the PATHNAME and SEARCHRULE file attributes, refer to
the File Attributes Programming Reference Manual.
8600 0502–407
3–43
CURRENTDIRECTORY
Write Time
The following restrictions vary, depending on the time when CURRENTDIRECTORY is
assigned:
•
For an in-use process, the CURRENTDIRECTORY value can be changed only by the
process itself.
•
For an in-use process, CURRENTDIRECTORY can be assigned either an absolute or a
relative pathname. If CURRENTDIRECTORY is assigned a relative pathname, the
system adds the relative pathname to the end of the existing CURRENTDIRECTORY
value, and sets CURRENTDIRECTORY to this combined value.
•
If the process is not in-use, then only absolute pathnames can be assigned to
CURRENTDIRECTORY.
You can assign the CURRENTDIRECTORY value either through conventional task
attribute assignments or through one of the following methods:
•
The C language chdir function. For information about the chdir function, refer to the
MCP/AS C Programming Reference Manual, Volume 2: Headers and Functions.
•
The POSIX_CHANGEDIR procedure of the MCPSUPPORT library. For information
about this procedure, refer to the MCP/AS ALGOL and MCP Interfaces to POSIX
Features Programming Reference Manual.
Default and Inheritance
The default value for CURRENTDIRECTORY is the null string. At file open time, this
default is treated as equivalent to a single slash, indicating the root directory.
System administrators can define a default CURRENTDIRECTORY value for each
usercode with the POSIXINITDIR usercode attribute.
A task inherits the CURRENTDIRECTORY value of its parent, unless this value is
overridden by explicit assignments.
Examples
In ALGOL, you must explicitly terminate CURRENTDIRECTORY assignments with a null
character, as shown in the following example:
REPLACE T1.CURRENTDIRECTORY BY
"/-/DBFAM/USERCODE/JANEDOE/TESTCASE/ONE" 48"00";
In COBOL74 and COBOL85, you must first define a group item that ends with a null
character, as in the following example:
WORKING-STORAGE SECTION.
01 X.
03 Y PIC X(6) VALUE "aa/bbb".
03 Z PIC X(1) VALUE @00@.
3–44
8600 0502–407
CURRENTDIRECTORY
You can use a statement such as the following to assign the group item to
CURRENTDIRECTORY:
CHANGE ATTRIBUTE CURRENTDIRECTORY OF MYSELF TO X.
Run-Time Errors
CURRENTDIRECTORY NOT CHANGED: INVALID SYNTAX
An attempt was made to assign CURRENTDIRECTORY a value that does not conform to
pathname syntax. The assigning process continues to run normally, but the
CURRENTDIRECTORY value remains unchanged.
CURRENTDIRECTORY NOT CHANGED: ACCESS ERROR
An attempt was made to assign CURRENTDIRECTORY a directory that does not exist, or
a directory to which this process does not have access rights. The assigning process
continues running normally, but the CURRENTDIRECTORY value remains unchanged.
CURRENTDIRECTORY WRITABLE ONLY BY OWNER STACK ON ACTIVE
TASK
A process attempted to modify the CURRENTDIRECTORY value of another, in-use
process. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE =
2 (PROGRAMCAUSEV) and HISTORYREASON = 56 (NONOWNERACCESSV).
CURRENTDIRECTORY MUST BE ABSOLUTE ON INACTIVE TASK
An attempt was made to assign a relative pathname to the CURRENTDIRECTORY of a
task variable that is not in-use. The assigning process, if nonprivileged, is discontinued
with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
REQUIRES ROOT FAMILY TO BE SET WITH DL
COMMAND
An attempt was made to assign CURRENTDIRECTORY, and no DL ROOT family has
been defined for this system. The is the value being assigned to
CURRENTDIRECTORY, expressed in TITLE form rather than pathname form. The
assigning process is suspended with the above RSVP message. The operator can
respond in either of the following ways:
•
With a DS (Discontinue) command to terminate the suspended process.
•
With the DL ROOT ON form of the DL (Disk Location) system
command. The suspended process resumes execution when the DL ROOT family is
defined.
8600 0502–407
3–45
DATABASE
DATABASE
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
See below
Write Time
See below
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Standard
Not supported
73
Synonym
None
Restrictions
None
Range
ÄÄ DATABASE ÄÄÄÄ ( ÄÄ TITLE ÄÄ = ÄÄÄÄ ) ÄÄÄÄÄÄÄÄÄÄÄ´
Explanation
The DATABASE task attribute causes a process to use a different database than it
otherwise would.
In the DATABASE value, the simple name is the internal name by which the process
refers to the original database. The title is the title of the database that is to be used
instead. Your title should be the title of an Enterprise Database Server control file.
Read Time
The DATABASE task attribute can be read at any time from an ALGOL program.
However, the value returned is encoded in an internal form that does not resemble the
original DATABASE assignment.
The DATABASE task attribute returns a null value if read from COBOL and cannot be
read from WFL at all.
3–46
8600 0502–407
DATABASE
Write Time
The DATABASE task attribute can only be assigned by a DATABASE equation statement
in a WFL program. For information about database equation, refer to the Work Flow
Language (WFL) Programming Reference Manual.
Assigning the DATABASE task attribute from an ALGOL or COBOL program causes a
run-time error.
Examples
The following example shows this attribute being used in a WFL job:
RUN USERPROG;
DATABASE TESTDB(TITLE=/CONTROL);
The database internal name or the database title can be replaced by string variables,
which must be prefixed with a pound sign (#). The following example uses the string
variables STRINT and STRTITLE:
RUN USERPROG;
DATABASE #STRINT(TITLE=#STRTITLE);
Run-Time Error
DATABASE ATTRIBUTE - RESTRICTED ACCESS
A non-WFL process attempted to assign a value to the DATABASE attribute, or a WFL
process attempted to assign a value to the DATABASE attribute of an in-use task
variable. An attempt was made to assign a value to the DATABASE attribute of an in-use
process. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE =
2 (PROGRAMCAUSEV) and HISTORYREASON = 128 (RESTRICTEDACCESSV).
8600 0502–407
3–47
DATEOFFSET
DATEOFFSET
Type
Integer
Units
Days
Range
Default
0 to 4095
0
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Standard
Supported
154
Synonym
None
Restrictions
None
Explanation
The DATEOFFSET task attribute provides a means for a task to adjust the date returned
to the task when calling the TIME intrinsic.
All TIME functions that return a date are adjusted by DATEOFFSET days, except for
functions 36 and 136, which return the halt/load time in TIME(6) format.
Notes:
3–48
•
In a library environment the attribute value for a client program is used if the TIME
intrinsic is invoked in a library entrypoint. If the result from the TIME intrinsic is
stored globally and compared with values obtained from different calls from different
clients, the results are unpredictable. It is recommended that in such an environment
the library and all clients are assigned the same value for the DATEOFFSET attribute.
•
If the system option NODATEOFFSET is set, the value of the DATEOFFSET attribute
can only be set to 0 (zero). Attempts to set the attribute to any other value within the
range of 1 to 4095 results in a warning message, and the attribute value is not
changed.
8600 0502–407
DCIINPUTEVENT
DCIINPUTEVENT
Type
Event
Units
Not applicable
Range
Default
HAPPENED, NOT HAPPENED
None
Read Time
See below
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
None (read-only)
Not supported
127
None
Not available in WFL
Explanation
The DCIINPUTEVENT task attribute can be used by the Transaction Server direct window
programs to detect the presence of user input.
Direct window programs should use DCIINPUTEVENT together with the DCITASKEVENT
task attribute. When input is available, the system causes one or the other of these
attributes, but not both. For input that is available to any of the copies of a program, the
system causes the DCIINPUTEVENT of all the program copies. For input that is available
only to a particular copy of the program, the system causes the DCITASKEVENT of that
program copy.
Before attempting to wait on the DCIINPUTEVENT task attribute, the direct window
program must successfully execute an ENABLE statement with the ONLINE option. If
the program attempts to execute the WAIT statement before executing the ENABLE
statement, the system discontinues the program.
A program awakened by the DCIINPUTEVENT might find that no input is available
because one of the other copies of the program executed a RECEIVE statement first.
Therefore, the program should always use the DONTWAIT option of the RECEIVE
statement to prevent the risk of hanging indefinitely.
The system automatically resets DCIINPUTEVENT after a direct program executes the
RECEIVE statement.
8600 0502–407
3–49
DCIINPUTEVENT
The program should use only WAIT statements or IF HAPPENED expressions with
DCIINPUTEVENT. The program should not use statements that cause the event or reset
the event, because such statements overwrite the effects of cause actions and reset
actions issued by the system. Examples of such statements include the ALGOL
language, WAITANDRESET, CAUSE, and CAUSEANDRESET. The system does not issue
any error for the programs that cause or reset DCIINPUTEVENT, but the program is likely
to not work as intended.
Run-Time Errors
Transaction Process is DSED because task is empty or TP is not under
COMS control
An attempt was made to wait on or interrogate the DCIINPUTEVENT or DCITASKEVENT
attribute, and one of the following conditions is true:
•
The task variable is not currently in use, because the task has not been initiated or
has already terminated.
•
The task variable refers to a process that is not a Transaction Server direct window
program. The system recognizes a process as a Transaction Server direct window
program when the process executes an ENABLE statement with the ONLINE option.
The process that waited on or interrogated the task attribute is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 128
(RESTRICTEDACCESSV).
Note that the same HISTORYCAUSE and HISTORYREASON values are associated with
the following messages.
Transaction Processor is DSED because DS or BADGOTO was
encountered during linking
Transaction Process is DSED because unable to link to the Transaction
Processor
Transaction Process is DSED because during linkage to TP an error was
encountered
Transaction Process is DSED because link error occurred during DCIWAIT
linkage
The preceding four messages each indicate that a system software error occurred when
a process attempted to wait on or interrogate the DCIINPUTEVENT or DCITASKEVENT
task attribute. The process that waited on or interrogated the task attribute is
discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON =
128 (RESTRICTEDACCESSV). These diagnostic messages should not normally occur, but
if they do occur, you should notify system support personnel.
3–50
8600 0502–407
DCITASKEVENT
DCITASKEVENT
Type
Event
Units
Not applicable
Range
Default
HAPPENED, NOT HAPPENED
None
Read Time
See below
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
None (read-only)
Not supported
128
None
Not available in WFL
Explanation
The DCITASKEVENT task attribute can be used by Transaction Server direct window
programs to detect the presence of user input.
Direct window programs should use DCITASKEVENT together with the DCIINPUTEVENT
task attribute. When input is available, the system causes one or the other of these
attributes, but not both. For input that is available to any of the copies of a direct window
program, the system causes the DCIINPUTEVENT of all the program copies. For input
that is available only to a particular copy of the program, the system causes the
DCITASKEVENT of that program copy.
Before attempting to wait on the DCITASKEVENT task attribute, the direct window
program must successfully execute an ENABLE statement with the ONLINE option. If
the program attempts to execute the WAIT statement before executing the ENABLE
statement, the system discontinues the program.
If a program is awakened by DCITASKEVENT, then there is no possibility that another
copy of the program might read the input before this copy does. However, it is still a
good idea to use the DONTWAIT option of the RECEIVE statement in case the input
becomes unavailable for some reason.
The system automatically resets DCITASKEVENT after a program executes the RECEIVE
statement.
8600 0502–407
3–51
DCITASKEVENT
The program should use only WAIT statements or IF HAPPENED expressions with
DCITASKEVENT. The program should not use statements that cause the event or reset
the event, because such statements overwrite the effects of cause actions and reset
actions issued by the system. Examples of such statements include the ALGOL
language, WAITANDRESET, CAUSE, and CAUSEANDRESET. Although, the system does
not issue errors for the direct window programs that cause or reset DCITASKEVENT, the
direct window program might not work as intended.
Run-Time Errors
Refer to the discussion of run-time errors for the DCIINPUTEVENT task attribute.
3–52
8600 0502–407
DECKGROUPNO
DECKGROUPNO
Type
Integer
Units
Not applicable
Range
Default
0 to 549755813887
0
Read Time
Anytime; accurate while in use
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
33
Synonym
None
Restrictions
None
Explanation
The DECKGROUPNO task attribute stores an index that is assigned by WFL to each task
initiated by a WFL job. The first task that appears in a WFL job is assigned a
DECKGROUPNO of 1, the second task a DECKGROUPNO of 2, and so on. WFL uses
this information internally to determine which local data specifications are associated
with which tasks.
A process initiated from any source but WFL has a DECKGROUPNO of 0.
For information about local data specifications, refer to the Work Flow Language (WFL)
Programming Reference Manual.
Example
The following WFL example includes a number of statements that display the value of
DECKGROUPNO at different points during job execution. The comments at the right of
the example show the values displayed by these statements.
?BEGIN JOB WFL/TEST;
TASK T1, T2, T3;
DISPLAY STRING(T1(DECKGROUPNO),*);
PROCESS RUN OBJECT/ALGOL/ERROR [T1];
DISPLAY STRING(T1(DECKGROUPNO),*);
PROCESS RUN OBJECT/ALGOL/ERROR [T2];
DISPLAY STRING(T2(DECKGROUPNO),*);
PROCESS RUN OBJECT/ALGOL/ERROR [T3];
DISPLAY STRING(T3(DECKGROUPNO),*);
?END JOB
8600 0502–407
% Displays 0
% Displays 1
% Displays 2
% Displays 3
3–53
DEFAULTFILEGROUP
DEFAULTFILEGROUP
Type
String
Units
Not applicable
Range
Default
Null String
Read Time
Anytime
Write Time
Never
Inheritance
See below
Overwrite Rules
See below
Host Services
Attribute Number
Not supported
153
Synonym
None
Restrictions
None
Explanation
The DEFAULTFILEGROUP task attribute is a read-only attribute that is used to
interrogate the effective FILEGROUP value used by the task when creating disk files.
The value returned by this task attribute specifies the group name that is assigned to any
newly created disk files that are owned by the task.
If the FILEGROUP attribute for the task is set, then the task’s FILEGROUP value is
returned. Otherwise, if the FILEGROUP value associated with the user is set on the task,
the user’s FILEGROUP value is returned. Otherwise, interrogating the
DEFAULTFILEGROUP attribute returns “.”.
Refer to the FILEGROUP task attribute for more information.
3–54
8600 0502–407
DEPTASKACCOUNTING
DEPTASKACCOUNTING
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
See below
Read Time
Anytime
Write Time
Before initiation
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Set to IDENTIFIED if IDENTIFIED is
specified for the parent, the usercode, or
the system; otherwise, set to
ANONYMOUS
Standard
Not supported
124
Synonym
None
Restrictions
None
Explanation
The DEPTASKACCOUNTING task attribute specifies whether the system should
generate log entries and system messages when the process is initiated and when the
process terminates. You can use DEPTASKACCOUNTING to improve overall system
performance by reducing the number of log entries the system generates. The best way
to achieve this effect is by establishing a system-wide DEPTASKACCOUNTING default,
as described later under “Default and Inheritance.”
The DEPTASKACCOUNTING task attribute can be assigned to any process. However,
the system enforces the value of this task attribute only for processes that meet all the
following criteria:
•
The process is a task (that is, a dependent process).
•
The process has the same usercode as its parent.
•
The process is not initiated directly from a CANDE or MARC session or from a WFL
job.
8600 0502–407
3–55
DEPTASKACCOUNTING
The following are the possible values of DEPTASKACCOUNTING:
Mnemonic
Value
Integer
Value
UNSPECIFIED
0
This value has no effect on logging or message
displays.
ANONYMOUS
1
The system does not generate Major Type 1, Minor
Type 2 (BOT Entry) or Major Type 1, Minor Type 4
(EOT Entry) log entries for this process. If the
system generates any other log entries for this
process, the system places a Major Type 0, Minor
Type 1 (Establish Identity) log entry before the first
of these other entries and generates a Major Type 0,
Minor Type 1 (Empty Establish Identity) log entry
when the process terminates. These logging effects
apply equally to the system log and the job log.
Meaning
When the process terminates, the resource usage
statistics of the process are added to those of the
parent and are reflected in the Major Type 1, Minor
Type 2 (EOJ Entry) or Minor Type 4 (EOT Entry) log
entry that the system issues for the parent. For
details about which fields in the parent's log entry
can reflect statistics from an ANONYMOUS
offspring, refer to the Unisys e-@ction ClearPath
Enterprise Servers System Log Programming
Reference Manual.
Further, no BOT or EOT messages are sent to the
originating station, and the process does not appear
in the C (Completed Mix Entries) system command
display.
This value also affects enforcement of the
FILEACCOUNTING task attribute. Refer to the
FILEACCOUNTING task attribute description.
IDENTIFIED
2
The system generates BOT and EOT log entries for
the process. The system sends BOT and EOT
messages to the originating terminal, and the
process termination is recorded in the C (Completed
Mix Entries) display.
Note that an operator can use the LOGGING
(Logging Options) system command to prevent
logging of any BOT and EOT log entries. In this case,
even processes with DEPTASKACCOUNTING =
IDENTIFIED do not receive BOT or EOT log entries.
3–56
8600 0502–407
DEPTASKACCOUNTING
Default and Inheritance
A process inherits the DEPTASKACCOUNTING value of its parent.
The system administrator can use the ACCOUNTING (Resource Accounting) system
command to specify a system-wide default for DEPTASKACCOUNTING. The system
administrator can also associate a default value with a usercode by including a
DEPTASKACCOUNTING usercode attribute in the usercode definition in the
USERDATAFILE.
When a process is initiated, the system assigns the DEPTASKACCOUNTING task
attribute the maximum of its current value (whether assigned or inherited), the system
default value, and the usercode value. The integer values for each
DEPTASKACCOUNTING mnemonic were previously listed under the “Explanation”
subheading.
For example, suppose that DEPTASKACCOUNTING has a value of ANONYMOUS in the
task variable, a value of IDENTIFIED at the system level, and a value of UNSPECIFIED at
the usercode level. At initiation time, the process is assigned a DEPTASKACCOUNTING
value of IDENTIFIED by the system, because IDENTIFIED has a higher numeric value (2)
than ANONYMOUS or UNSPECIFIED.
On a system running Security Services for ClearPath MCP with a security class of S2, or
with the security option ANONACCOUNTING set to the value NOTOK, the system sets
DEPTASKACCOUNTING to IDENTIFIED for all processes when they are initiated. This
rule overrides all of the other factors affecting the DEPTASKACCOUNTING value.
8600 0502–407
3–57
DESTNAME
DESTNAME
Type
String
Units
Not applicable
Range
Default
SITE
Read Time
Anytime
Write Time
Before initiation
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
From parent
Standard
Supported
44
BACKUPDESTINATION
None
Explanation
The DESTNAME task attribute specifies a destination station for printer or punch output
created by the process. This attribute is useful at sites where some of the printers are
connected to data comm lines.
This attribute can be set to any of the following values:
•
Any station name in the DATACOMINFO file data comm definition for the system.
•
SITE. This value specifies that there is no destination station for the process. Other
factors, such as the default destination, determine the routing of printer and punch
files.
Setting this attribute to something other than SITE causes printer files to be built under
the directory *REMLPnn/= , and punch files to be created under the directory
*REMCPnn/= . The nn in the titles is the MCS number defined by the data comm
subsystem for the MCS that controls the destination station. The remainder of the file
name includes the job number, mix number, and so on, as described in the process I/O
usage discussion in the Task Management Programming Guide.
An alternate method of specifying the destination station for a process is the
DESTSTATION task attribute. DESTSTATION specifies the logical station number (LSN)
of the destination station. Assigning a valid station name to DESTNAME causes
DESTSTATION to receive the corresponding LSN. Similarly, assigning a valid LSN to
DESTSTATION causes DESTNAME to be updated with the corresponding station name.
The MCS, which controls the destination station, might print the files automatically,
depending on which MCS is involved. Otherwise, the files remain on disk until removed
or printed by application software supplied by the site.
3–58
8600 0502–407
DESTNAME
If the Transaction Server controls the destination station, the files will not be printed
automatically. If you want the output to be printed at a Transaction Server station, you
must assign the DESTINATION file attribute to the desired station. You can assign this
file attribute for a particular file, or you can assign a default DESTINATION value as a part
of the PRINTDEFAULTS task attribute.
For information about remote printing, refer to the Print System and Remote Print
System Administration, Operations, and Programming Guide.
Using DESTNAME with JOBSUMMARY and JOBSUMMARYTITLE
The DESTNAME task attribute exists only to support legacy printing applications through
message control systems (MCSs). DESTNAME cannot be used to generate print
requests. However, if DESTNAME is specified to deliver job summaries, the following
rules apply:
•
The JOBSUMMARY task attribute determines whether a job summary is printed by
the Print System and whether one is created for an MCS to print.
•
A job summary file is created for each service (Print System or MCS) for which
printed output is generated. You can control the name of the job summary file
created for the Print System with the JOBSUMMARYTITLE task attribute.
•
If no printed output is created and the JOBSUMMARY task attribute is specified, a
job summary is created for the Print System. If no printed output is created and the
DESTNAME task attribute is specified, a job summary is created for an MCS. If both
the DESTNAME and JOBSUMMARYTITLE attributes are set, two files are created.
Whether the Print System job summary is printed depends on the setting of the
JOBSUMMARY attribute.
For information on the JOBSUMMARY and JOBSUMMARYTITLE task attributes, refer to
Section 4 in this manual.
Inheritance
A process inherits the DESTNAME value of its parent.
A process initiated from a MARC or CANDE session inherits the DESTNAME value of the
session. If the CANDEDESTNAME usercode attribute is set for a usercode, then MARC
and CANDE use this value as the DESTNAME for sessions with that usercode. (For
information about setting CANDEDESTNAME, refer to the Security Administration
Guide.) The DESTNAME value for the current session can be changed using the MARC
or CANDE DESTNAME command.
8600 0502–407
3–59
DESTNAME
Run-Time Errors
BACKUPDESTINATION ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign DESTNAME a value that was not in title format. (Note
that BACKUPDESTINATION is a synonym for DESTNAME.) The current values of
DESTNAME and DESTSTATION remain unchanged. The assigning process, unless
privileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 131 (INCORRECTSYNTAXV).
DESTNAME ATTRIBUTE IS READ ONLY ON ACTIVE TASK
An attempt was made to assign DESTNAME for an in-use process. The assigning
process, if it is nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYONACTIVEV).
INVALID DESTINATION
The process was initiated with a DESTNAME value that does not correspond to any
existing station or pseudostation. Note that no error is given for assigning such a
DESTNAME value to a task variable. When the assignment is first made, DESTNAME is
changed to the requested value and DESTSTATION is changed to zero. When the task
variable is later used to initiate a process, the new process suffers the error. The process
is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON =
46 (BADTASKATTRIBUTEV). The INVALIDDESTINATION error message can also be
displayed for a bad DESTSTATION task attribute assignment; refer to the description of
the DESTSTATION task attribute.
UNABLE TO OBTAIN STATION NAME
An attempt was made to read DESTNAME when DESTNAME was set to the name of a
nonexistent station. This error is not fatal.
3–60
8600 0502–407
DESTSTATION
DESTSTATION
Type
Integer
Units
Not applicable
Range
Default
Valid LSNs
0
Read Time
Anytime
Write Time
Before initiation
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
46
Synonym
None
Restrictions
None
Explanation
The DESTSTATION task attribute specifies a destination station for printer or punch
output created by the process. This attribute is useful at sites where some of the printers
are connected to data comm lines.
DESTSTATION serves the same purpose as the DESTNAME task attribute. The
difference is that DESTSTATION specifies the logical station number (LSN) of the
destination station rather than the station name. Assigning a valid LSN to DESTSTATION
causes DESTNAME to be updated with the corresponding station name. Similarly,
assigning a valid station name to DESTNAME causes DESTSTATION to receive the
corresponding LSN.
DESTSTATION can be set to the LSN of any station on the system or to 0. If
DESTSTATION is 0, there is no destination station for the process. In that case, other
factors, such as the default printer pool definition, determine the routing of printer and
punch files.
Inheritance
A process inherits its parent's DESTSTATION value. A process initiated from a MARC or
CANDE session inherits the DESTNAME value of the session, and this DESTNAME, in
turn, determines the DESTSTATION value.
8600 0502–407
3–61
DESTSTATION
Run-Time Errors
DATACOMM MUST BE ACTIVE TO SET DESTSTATION
An attempt was made to set DESTSTATION to a nonzero value while the number of data
comm users was zero. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 134
(DATACOMMNOTACTIVEV).
DESTSTATION ATTRIBUTE IS READ ONLY ON ACTIVE TASK
An attempt was made to assign DESTSTATION for an in-use process. The assigning
process, if nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV)
and HISTORYREASON = 33 (READONLYONACTIVEV).
INVALID DESTINATION
An attempt was made to set DESTSTATION to a value that is not a valid LSN. The
DESTSTATION value is set to zero, and the DESTNAME value remains unchanged. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 133 (INVALIDLSNV). The INVALID
DESTINATION error message can also result indirectly from a bad DESTNAME task
attribute assignment; refer to the description of the DESTNAME task attribute.
3–62
8600 0502–407
DISPLAYONLYTOMCS
DISPLAYONLYTOMCS
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Object code file dominant
Not supported
103
Synonym
None
Restrictions
None
Explanation
The DISPLAYONLYTOMCS task attribute specifies whether any DISPLAY messages
created by the process are included in the system messages. The operator can use the
MSG (Display Messages) system command to list recent system messages.
If a process was not created from an MCS session, DISPLAY messages appear in the
MSG command output, regardless of the setting of DISPLAYONLYTOMCS.
If a process was initiated from an MCS session and DISPLAYONLYTOMCS is FALSE,
then DISPLAY messages appear in the MSG command output, as well as at the session
that initiated the process. If a process was initiated from an MCS session and
DISPLAYONLYTOMCS is TRUE, then DISPLAY messages appear only at the session
that initiated the process. A DISPLAYONLYTOMCS value of TRUE allows a process to
communicate with an end user without distracting the operator.
The ?MSG command in CANDE displays messages regardless of the value of
DISPLAYONLYTOMCS. Further, the MSG ALL and MSG FULL forms of the MSG
(Display Messages) system command display messages regardless of the value of
DISPLAYONLYTOMCS.
The DISPLAYONLYTOMCS task attribute does not affect the logging of DISPLAY
messages in either the job log or the system log. DISPLAY messages will be included in
these logs unless the operator has used selective logging features to suppress the
logging of DISPLAY messages. (For a description of selective logging features, refer to
the Security Administration Guide.)
For information about DISPLAY messages, refer to the discussion of tasking from
interactive sources in the Task Management Programming Guide.
8600 0502–407
3–63
DISPLAYONLYTOMCS
The system also provides methods for suppressing other types of messages. These
methods include
•
The SUPPRESSWARNING task attribute (discussed in this manual) and
SUPPRESSWARNING system command (discussed in the System Commands
Operations Reference Manual).
•
The MSC SUPPRESS form of the MSC command, which is discussed in the MCP/AS
Menu-Assisted Resource Control (MARC) Operations Guide.
Inheritance
The value of DISPLAYONLYTOMCS is not inherited from the parent process.
CANDE supports several methods of providing default values for the
DISPLAYONLYTOMCS task attribute. The ?OP DISPLAYONLYTOMCS control option
provides a default setting for the DISPLAYONLYTOMCS session option, for example:
To cause DISPLAYONLYTOMCS to default to . . .
Enter . . .
TRUE
?OP + DISPLAYONLYTOMCS
FALSE
?OP – DISPLAYONLYTOMCS
The ?SO and ?RO user commands override the previous setting and establish a default
DISPLAYONLYTOMCS value for all processes initiated from the current CANDE session,
for example:
3–64
To establish a default of . . .
Enter . . .
TRUE
?SO DISPLAYONLYTOMCS
FALSE
?RO DISPLAYONLYTOMCS
8600 0502–407
ELAPSEDLIMIT
ELAPSEDLIMIT
Type
Real
Units
Seconds
Range
Default
0 to about 4.31E+68 = 4.31*10 exp 68
0 (no limit)
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
57
Synonym
None
Restrictions
None
Explanation
The ELAPSEDLIMIT task attribute specifies the maximum elapsed time for a process. If
the ELAPSEDTIME task attribute value reaches the same value as ELAPSEDLIMIT, the
process is discontinued. Refer to the ELAPSEDTIME task attribute description for details.
Inheritance
Although ELAPSEDLIMIT is not inherited from the parent, the ELAPSEDLIMIT value of a
process indirectly limits the elapsed time for all its descendants. This is true because
when a process terminates, any in-use descendants of that process are discontinued
with a “PARENT PROCESS TERMINATED” error.
If the operator defines a default value for the ELAPSEDLIMIT attribute of a job queue, the
value is inherited by WFL jobs run from that job queue. If the operator defines a limit
value for the ELAPSEDLIMIT attribute of a job queue, then WFL jobs that specify a
greater ELAPSEDLIMIT in the job attribute list are not allowed in that job queue. For an
introduction to job queue defaults and limits, refer to the discussion of tasking from
programming languages in the Task Management Programming Guide.
Run-Time Error
ELAPSED TIME LIMIT EXCEEDED
The process ran for longer than the time specified by ELAPSEDLIMIT. The process is
discontinued with HISTORYCAUSE = 3 (RESOURCECAUSEV) and
HISTORYREASON = 10 (ELAPSEDEXCEEDEDV).
8600 0502–407
3–65
ELAPSEDTIME
ELAPSEDTIME
Type
Real
Units
See below
Range
Default
0 to about 4.31E+68 = 4.31*10 exp 68
None
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Supported
15
Synonym
None
Restrictions
None
Explanation
The ELAPSEDTIME task attribute records the total amount of time that has passed since
the initiation of the process. The process is discontinued if the value of the
ELAPSEDTIME task attribute reaches the same value as the ELAPSEDLIMIT task
attribute. Refer to the ELAPSEDLIMIT description for details.
The ELAPSEDTIME value is unaffected by any DR (Date Reset) or TR (Time Reset)
system commands entered while the process is in use. However, the ELAPSEDTIME
value of a WFL job is set to zero when the job is restarted after a halt/load.
If ELAPSEDTIME is accessed through Host Services, bit 47 will always be 0 (zero).
Units
When accessed from WFL, the ELAPSEDTIME value is expressed in units of seconds.
When accessed from other languages, the value is expressed in units of 2.4
microseconds.
3–66
8600 0502–407
ERROR
ERROR
Type
Real (string in WFL)
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
From parent
None (read only)
Not supported
25
TASKATTERR
None
Explanation
The ERROR task attribute indicates whether an error resulted from the most recent
attempt to access a task attribute of this process. If an error did result, the ERROR value
also indicates which task attribute was being accessed.
If read in WFL, the ERROR task attribute returns a string value. If the most recent task
attribute access had an error, then the string is the name of the task attribute that was
being accessed. If the most recent task attribute access did not cause an error, the
ERROR task attribute returns a null string.
If read in other languages, the ERROR task attribute returns a real value. If the most
recent task attribute access caused an error, the ERROR value is the negative of the
attribute number of the attribute in error. (The USERCODE task attribute is an exception,
as discussed in the following table.) If the most recent task attribute access did not
cause an error, the ERROR value is 0 (zero).
8600 0502–407
3–67
ERROR
The ERROR value has the following fields, which can be accessed at the bit level:
Field
Meaning
[46:01]
If set, the last task attribute access caused an error, and the remaining
fields of the word are used. Otherwise, the last task attribute access did
not cause an error, and the remaining fields of the word are not used.
[27:20]
If the last attribute to be assigned was the USERCODE attribute, then
this field contains a USERDATA error code. For a list of the most
common USERDATA errors that can be stored in this field, refer to
Table 3–1, “USERDATA Errors.” For a complete list, and general
information about USERDATA errors, refer to the Security
Administration Guide.
If the last attribute to be assigned was not the USERCODE attribute,
then this field stores an error code in one of the following ranges of
numbers:
1 through 999. Such an error code corresponds to the
HISTORYREASON task attribute value. For an explanation of values in
this range, refer to the HISTORYREASON task attribute description.
1000 or greater. Such an error code corresponds to the
HANDLEATTRIBUTES error number. For an explanation of values in this
range, refer to Table 1–1, “HANDLEATTRIBUTES Error Numbers.”
[07:08]
If the task attribute most recently assigned was FILECARDS, then this
field stores the number of the file attribute that was assigned
incorrectly. For a list of file attributes ordered by number, refer to the
relevant appendix of the File Attributes Programming Reference Manual.
If the task attribute most recently assigned was LIBRARY, then this field
stores the number of the library attribute that was assigned incorrectly.
For a list of the possible values and the corresponding LIBRARY
attributes, refer to Table 3–2, “Library Attributes by Number.”
If the task attribute most recently accessed was neither FILECARDS nor
LIBRARY, then this field stores the number of the task attribute that
was most recently accessed. The task attributes are listed by number in
Table 3–3, “Task Attributes by Number.”
For details about how to access these fields, refer to “Accessing Task Attributes at the
Bit Level” in Section 1, “Accessing Task Attributes.”
The value of the ERROR task attribute is automatically erased when the task attribute is
read by any process. Most MCSs read this task attribute for processes initiated from
sessions. Therefore, if you initiate a process from a session, you can expect the ERROR
task attribute to be blank even if a task attribute error has occurred.
3–68
8600 0502–407
ERROR
In a memory dump or a program dump, you might see an ERROR value even though no
task attribute error occurred. This occurs because the ERROR task attribute contains the
attribute number of the task attribute most recently assigned, even if no error occurred.
In addition, the ERROR value is used by the system software as scratch storage while a
job is being restarted. Both these types of values are visible only in dumps; a program
that reads the task attribute finds a value of 0.
For more information about task attribute errors, refer to “Task Attribute Errors” in
Section 1, “Accessing Task Attributes.”
Table 3–1 lists and defines the USERDATA error numbers that can occur in field [27:20]
of the ERROR task attribute value.
Table 3–1.
USERDATA Errors
Error Code
Definition
8
No *SYSTEM/USERDATA file present.
9
No entry exists with the requested usercode.
10
The password supplied was invalid, or none was supplied when one
was required.
16
This usercode is not a viable usercode; its entry has no system node.
17
This usercode has been marked SUSPENDED.
35
The usercode/password syntax was incorrect.
36
No usercode was specified.
45
The password has expired.
51
The password associated with the usercode has expired, and
ENFORCEEXPIREDPW is true for the usercode.
Table 3–2 lists the library attribute numbers that can occur in field [07:08] of the ERROR
task attribute value.
Table 3–2.
8600 0502–407
Library Attributes by Number
Number
Name
0
INTNAME
1
TITLE
2
LIBPARAMETER
3
FUNCTIONNAME
4
LIBACCESS
13
CONNECTIONS
14
CHANGE
3–69
ERROR
Table 3–2.
Library Attributes by Number
Number
Name
15
APPROVAL
16
SINGLE
17
STATE
18
AUTOLINK
20
DELINKEVENT
21
CLUSAGE
Table 3–3 lists the numbers that can be returned in field [07:08] of the ERROR task
attribute value, and the names of the corresponding task attributes. Note that some
numbers are intentionally omitted because no task attributes correspond to those
numbers.
Table 3–3.
Number
3–70
Task Attributes by Number
Name
0
NAME
1
MIXNUMBER
2
CORE
3
PRIORITY
4
MAXPROCTIME
5
MAXIOTIME
6
TARGET
7
STACKSIZE
8
USERCODE
9
TASKVALUE
10
HISTORY
11
TYPE
12
STATUS
13
ACCUMPROCTIME
14
ACCUMIOTIME
15
ELAPSEDTIME
16
EXCEPTIONTASK
17
LOCKED
18
STOPPOINT
8600 0502–407
ERROR
Table 3–3.
Number
8600 0502–407
Task Attributes by Number
Name
19
PARTNER
20
STATION
21
EXCEPTIONEVENT
22
OPTION
23
VALIDITYBITS
24
FILECARDS
25
ERROR
27
PARTNEREXISTS
28
RESTART
29
BDNAME
30
STACKHISTORY
32
TASKFILE
33
DECKGROUPNO
34
CLASS
37
MYPPB
38
ORGUNIT
39
MAXCARDS
40
MAXLINES
41
JOBNUMBER
42
CHARGE
44
DESTNAME
45
SOURCESTATION
46
DESTSTATION
47
SOURCEKIND
48
RESTARTED
49
MAXWAIT
50
STACKLIMIT
52
FETCH
53
RESOURCE
55
FAMILY
56
WAITLIMIT
57
ELAPSEDLIMIT
3–71
ERROR
Table 3–3.
Number
3–72
Task Attributes by Number
Name
58
TASKLIMIT
60
TANKING
61
ACCESSCODE
63
BACKUPFAMILY
64
HOSTNAME
66
HISTORYTYPE
67
HISTORYCAUSE
68
HISTORYREASON
70
HSPARAMSIZE
72
ITINERARY
73
DATABASE
74
LIBRARY
78
TIMESTARTED
79
STARTTIME
81
JOBSUMMARY
82
CHECKPOINTABLE
83
BRCLASS
84
SW1
85
SW2
86
SW3
87
SW4
88
SW5
89
SW6
90
SW7
91
SW8
92
INHERITMCSSTATUS
94
TADS
95
LANGUAGE
97
JOBSUMMARYTITLE
98
NOJOBSUMMARYIO
99
PRINTDEFAULTS
100
ACCEPTEVENT
8600 0502–407
ERROR
Table 3–3.
8600 0502–407
Task Attributes by Number
Number
Name
101
LIBRARYUSERS
102
AUTOSWITCHTOMARC
103
DISPLAYONLYTOMCS
104
INITPBITCOUNT
105
INITPBITTIME
106
OTHERPBITCOUNT
107
OTHERPBITTIME
108
LIBRARYSTATE
109
TASKWARNINGS
110
SUPPRESSWARNING
111
FILEACCESSRULE
112
SAVEMEMORYLIMIT
113
TASKSTRING
116
APPLYLIST
117
TASKERROR
118
TEMPFILELIMIT
119
TEMPFILEMBYTES
120
CONVENTION
121
SOURCENAME
122
MCSNAME
123
AUTORESTORE
124
DEPTASKACCOUNTING
125
FILEACCOUNTING
126
LABELFORMAT
127
DCIINPUTEVENT
128
DCITASKEVENT
129
AX
130
REALUSERCODE
131
SAVEDUSERCODE
132
GROUPCODE
133
REALGROUPCODE
134
SAVEDGROUPCODE
3–73
ERROR
Table 3–3.
Task Attributes by Number
Number
Name
136
NETPATH
137
CURRENTDIRECTORY
138
PRIORHISTORY
139
PRIORHISTORYTYPE
140
PRIORHISTORYCAUSE
141
PRIORHISTORYREASON
142
SUPPLEMENTARYGRPS
143
FILEMASK
144
STATIONNAME
145
PUMPTITLE
146
BLOCKCREDENTIALS
147
CREDENTIALS
148
CREDENTIALSBASE
149
INHERITCREDENTIALS
152
FILEGROUP
153
DEFAULTGROUP
154
DATEOFFSET
155
OPTIONAL
156
REPORTBADINITIATE
157
COUNTRY
158
MPID
159
BOTTIMESTAMP
Run-Time Error
ERROR ATTRIBUTE IS READONLY
An attempt was made to assign a value to the ERROR task attribute. The assigning
process, if nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV)
and HISTORYREASON = 9 (ATTREADONLYV).
3–74
8600 0502–407
EXCEPTIONEVENT
EXCEPTIONEVENT
Type
Event
Units
Not applicable
Range
Default
HAPPENED, NOT HAPPENED
NOT HAPPENED
Read Time
Anytime
Write Time
See below
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
Indeterminate; software interrupts remain
attached
See below
Not supported
21
None
Not available in WFL
Explanation
The EXCEPTIONEVENT task attribute accesses a predeclared event called the exception
event that is associated with each process. When the STATUS task attribute of a
process changes value, the system causes the exception event of the exception task of
that process. By default, the parent is the exception task of a dependent process.
Therefore, the exception event of the parent is a convenient means of informing the
parent when one of its offspring has terminated or otherwise changed status.
The system also causes the exception event of a permanent library or control library
whenever the value of the LIBRARYUSERS task attribute changes to zero.
The operator can also cause the exception event of a process by using the HI (Cause
EXCEPTIONEVENT) system command.
The EXCEPTIONEVENT task attribute can be used in any ALGOL or COBOL statement
that operates on an event. For example, a process can wait on the EXCEPTIONEVENT
task attribute or can cause it.
A process can access the exception event of itself or of an ancestor process. The
process cannot access the exception event of a descendant, sibling, or cousin process.
For a discussion of exception tasks, ancestors, siblings, cousins, local-parent/remote-task
logic and descendants, refer to the Task Management Programming Guide.
8600 0502–407
3–75
EXCEPTIONEVENT
Write Time
A process can cause or reset the EXCEPTIONEVENT at any time. However, a process
can never assign an event variable to EXCEPTIONEVENT. For example, the following
ALGOL statement compiles successfully, but produces a run-time error:
T.EXCEPTIONEVENT := EVNT;
Overwrite Rules
The statements that access EXCEPTIONEVENT can be applied only to an in-use process.
Run-Time Errors
EXCEPTIONEVENT ATTRIBUTE IS READONLY
A process attempted to assign an event variable to the EXCEPTIONEVENT task attribute.
The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 9 (ATTREADONLYV).
NON-ANCESTRAL TASK REFERENCE
A process attempted to access the exception event of a descendant, sibling, or cousin
process. The process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 130 (NONANCESTRALEXCEPTEVENTV).
3–76
8600 0502–407
EXCEPTIONTASK
EXCEPTIONTASK
Type
Task
Units
Not applicable
Range
See below
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
None
Fork() Inheritance
MYSELF
Overwrite Rules
Standard
Host Services
Attribute Number
Synonym
Restrictions
Not supported
16
None
Not available in WFL
Explanation
The EXCEPTIONTASK task attribute specifies the exception task for a process. When the
STATUS task attribute of a process changes value, the system causes the exception
event of the exception task for that process. (Note that the “exception task” is not
necessarily a task; it could be a job.) A program can use the EXCEPTIONTASK task
attribute to assign the process that is to be used as the exception task, or to access task
attributes of the exception task.
For further information, refer to the discussion of interprocess relationships in the Task
Management Programming Guide.
Range
A process can assign any ancestral, sibling, or cousin process as the exception task.
Descendant processes cannot be assigned as the exception task. (For a discussion of
ancestral, sibling, cousin, and descendant processes, refer to the discussion of
interprocess relationships in the Task Management Programming Guide.)
An independent process has no exception task. When any process attempts to access
the exception task of an independent process, the attempt is treated as a reference to
the MYSELF task variable of the accessing process.
For remote tasks, the exception task is always the parent process. No other process can
be assigned as the exception task. For information about remote tasks, refer to the
discussion of tasking across multihost networks in the Task Management Programming
Guide.
8600 0502–407
3–77
EXCEPTIONTASK
Default
For a task, the parent is the default exception task. For a job, the job is its own default
exception task. For a task initiated by a session, the controlling MCS is the default
exception task.
Run-Time Errors
UP LEVEL TASK ASSIGNMENT
An attempt was made to assign a descendant process as the exception task. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2 and
HISTORYREASON = 113.
NON-ANCESTRAL TASK REFERENCE
A sibling or cousin process is assigned as the exception task, and an attempt was made
to access the exception event of the exception task using a statement such as
“CAUSE (MYSELF.EXCEPTIONTASK.EXCEPTIONEVENT)”. The accessing process is
discontinued, even if it is privileged, with HISTORYCAUSE= 2 (PROGRAMCAUSEV) and
HISTORYREASON = 130 (NONANCESTRALEXCEPTEVENTV).
3–78
8600 0502–407
Section 4
Task Attributes F through K
This section contains task attributes starting with the letters F through K.
8600 0502–407
4–1
FAMILY
FAMILY
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Object code file dominant
Supported
55
Synonym
None
Restrictions
None
Range
ÄÄÄÄ = ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄë
ëÄÂÄ OTHERWISE ÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄ ONLY ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
These are each nonquote identifiers.
Explanation
The FAMILY task attribute can assign one or two substitute disk families to be used
whenever the process references the target disk family. The substitute families are
called the primary family and the alternate family. The alternate family is optional.
The process searches for and creates files on the substitute families whenever it would
have used the target family. The following rules determine whether both substitute
families, or only the primary family, are searched:
•
4–2
When an existing file is being opened or executed, if the file cannot be found on the
primary family, the alternate family is searched. If the TITLE file attribute does not
include a usercode, then the file is searched for first under the usercode of the
process and then as a nonusercoded file on each of the substitute families.
8600 0502–407
FAMILY
•
When a file is being created, or when the file is the subject of a CHANGE, REMOVE,
ARCHIVE, SECURITY, or CATALOG statement, only the primary family is searched.
The alternate family is not used.
•
In the ALTER, MOVE, RESTORE, RESTOREADD, COPY and ADD statements, only
the primary family is used for both sources and destinations; the alternate family is
not used.
The most typical use of this task attribute is to establish a default family for files that do
not have a family specified. Such files default to DISK if the FAMILY task attribute is not
used. However, if the FAMILY task attribute is used, and the target family specified is
DISK, then such files default to the substitute family in the FAMILY value. The following
is an example of a FAMILY value that establishes ORDSPACK as the default family for a
process:
DISK = ORDSPACK OTHERWISE DISK
The target family, primary family, and alternate family must be disk families. TAPE cannot
be specified as the name of the target family, primary family, or alternate family.
During process initiation, when the system searches for an object code file to initiate, the
system does not consult the FAMILY attribute of the new process. Instead, the system
consults the NAME attribute of the new process and the FAMILY attribute of the
initiator, and applies family substitution if appropriate. This applies mainly if you are
writing programs that process external code files.
Note: The FAMILY attribute has no effect on files that have the SEARCHRULE file
attribute set to POSIX. For further information, refer to the descriptions of the
SEARCHRULE and PATHNAME file attributes in the File Attributes Programming
Reference Manual. Refer also to the description of the CURRENTDIRECTORY task
attribute later in this section.
Default
The default FAMILY setting is null, which means that no substitution takes place. The
family specified by the TITLE or FAMILYNAME file attribute is used. If no family name is
assigned to either of these file attributes, then DISK is used by default.
Inheritance
A process inherits the FAMILY value of its parent.
A process initiated from a MARC or CANDE session inherits the FAMILY value
associated with the session. At log-on time, the session receives the FAMILY usercode
attribute associated with the usercode in the USERDATAFILE. The session FAMILY can
be changed using a MARC or CANDE FAMILY command.
If the job attribute list of a WFL job includes a USERCODE assignment, but no FAMILY
assignment, then the job inherits any FAMILY usercode attribute that is defined for the
usercode in the USERDATAFILE.
8600 0502–407
4–3
FAMILY
If a FAMILY value is assigned to a job queue, that value is inherited by WFL jobs run from
that queue. A WFL job is not allowed in a job queue if the job attribute list specifies a
FAMILY value different from that of the job queue. However, the job can assign a
different FAMILY value after initiation.
Examples
Consider the following ALGOL program, which declares and opens two different disk
files:
BEGIN
FILE
FILE
OPEN
OPEN
END.
F(KIND=DISK,DEPENDENTSPECS=TRUE,TITLE="F ON TOOLS.");
G(KIND=DISK,DEPENDENTSPECS=TRUE);
(F);
(G);
The following WFL statement would run the program and cause it to search for file F on
ORDSPACK and then on DISK if necessary, and to search for file G on DISK:
RUN OBJECT/FILEOPEN;FAMILY TOOLS = ORDSPACK OTHERWISE DISK;
The following WFL statement would run the program and cause it to search for file F on
TOOLS and for file G on ORDSPACK, and then on DISK if necessary:
RUN OBJECT/FILEOPEN;FAMILY DISK = ORDSPACK OTHERWISE DISK;
WFL supports several different syntax forms for assigning the FAMILY task attribute.
The syntax using unquoted literals is shown in the preceding two examples. In addition,
WFL supports the use of string primaries to specify the family names, and the use of a
single string expression to specify the entire FAMILY value. The following are examples
of these forms of the FAMILY syntax:
STR1 := "DISK";
STR2 := "USERPACK";
STR3 := "SYS41";
RUN OBJECT/PROG;
FAMILY #STR1 = #STR2 OTHERWISE #STR3;
STR4 := "USERPACK OTHERWISE SYS41";
RUN OBJECT/PROG;
FAMILY = STR1 & " = " & STR4;
4–4
8600 0502–407
FAMILY
Run-Time Errors
FAMILY ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign FAMILY a value that does not follow the syntax for
family specification. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
REQUIRES *PK is the name of the family being searched for, and
is the value of the FILENAME attribute of the requested file. > The process
waits until an operator takes action. Refer to the System Operations Guide for
information on how to respond to waiting processes.
8600 0502–407
4–5
FETCH
FETCH
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Never
Write Time
Before initiation
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
See below
Not supported
52
None
Available only in WFL
Range
A string of up to 256 EBCDIC characters.
Explanation
The FETCH task attribute stores instructions for the operator. The programmer can
assign a string of text to FETCH. The operator can use the PF (Print Fetch) system
command to display the FETCH value.
If a WFL job contains a FETCH specification, and the system option NOFETCH is reset,
then the job cannot be initiated until the operator enters an OK (Reactivate) system
command. The operator can set or reset the NOFETCH system option with the OP
(Options) system command.
Overwrite Rules
The FETCH task attribute can be assigned only in the job attribute list in a WFL job. For
the syntax of this assignment, refer to the Work Flow Language (WFL) Programming
Reference Manual.
4–6
8600 0502–407
FETCH
Example
The following is an example of a WFL job that contains a FETCH specification. This
specification asks the operator to mount several tapes before allowing the job to
proceed.
BEGIN JOB FILEIT;
FETCH = "THIS JOB NEEDS THREE TAPE DRIVES";
RUN NIGHTLY/UPDATE;
END JOB
8600 0502–407
4–7
FILEACCESSRULE
FILEACCESSRULE
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
DEFAULT
Read Time
Anytime
Write Time
See below
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
111
Synonym
None
Restrictions
None
Explanation
The FILEACCESSRULE task attribute specifies whether file access security checking is
based on the identity of the process that declares the file or the process that opens the
file. This task attribute is relevant only in cases where the declaring process and the
opening process are different because a logical file is being shared among processes. For
these cases, the value of the FILEACCESSRULE task attribute of the accessing process
determines which type of security checking is used.
The following are the possible values and their meanings:
Mnemonic
Value
Integer
Value
Meaning
DEFAULT
0
This value is synonymous with DECLARER.
ACTOR
1
File access security checking is based on the identity
of the process that accesses the file. Only an MCS
or a process with privileged status or tasking status
can assign this value to FILEACCESSRULE.
DECLARER
2
File access security checking is based on the identity
of the process that declares the file.
For a further discussion of file access security, refer to the discussion of shared files in
the Task Management Programming Guide.
4–8
8600 0502–407
FILEACCESSRULE
Write Time
The ACTOR value can be assigned only after the process is initiated. The DEFAULT and
DECLARER values can be assigned at any time.
Inheritance
A process inherits the FILEACCESSRULE value of its parent.
Run-Time Errors
FILEACCESSRULE ATTRIBUTE INCORRECT SYNTAX
A process attempted to assign FILEACCESSRULE a value not in the possible range of
values. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE =
2 (PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
PRIVILEGED REQUIRED TO SET FILEACCESSRULE = ACTOR
A process that was not an MCS and did not have privileged status or tasking status
attempted to assign the FILEACCESSRULE attribute the value ACTOR. The assigning
process is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 136 (PRIVILEGEREQUIREDV).
SETTING FILEACCESSRULE TO ACTOR IS RESTRICTED TO ACTIVE TASKS
A process attempted to assign a value of ACTOR to the FILEACCESSRULE task attribute
of a task variable that is not in use. This message can also occur if the ACTOR value is
assigned through run-time task equation or is inherited from a FILEACCESSRULE
assignment in the object code file. This error is nonfatal, but the requested assignment is
ignored.
8600 0502–407
4–9
FILEACCOUNTING
FILEACCOUNTING
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
See below
Read Time
Anytime
Write Time
Before initiation
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Set to IDENTIFIED if IDENTIFIED is specified
for the parent, the usercode, or the system;
otherwise, set to ANONYMOUS
Standard
Not supported
125
Synonym
None
Restrictions
None
Explanation
The FILEACCOUNTING task attribute specifies whether the system should generate log
entries when the process opens or closes a file. You can use FILEACCOUNTING to
improve overall system performance by reducing the number of log entries the system
generates. The best way to achieve this effect is by establishing a system-wide
FILEACCOUNTING default, as described later under “Default and Inheritance.”
The following are the possible values of FILEACCOUNTING:
4–10
Mnemonic
Value
Integer
Value
Meaning
UNSPECIFIED
0
This value has no effect on logging.
ANONYMOUS
1
The system does not generate Major Type 1, Minor
Type 5 (File Open) or Major Type 1, Minor Type 6
(File Close) log entries for this process. The system
keeps general statistics on the file usage of the
process, and issues a summary of these statistics as
the Major Type 1, Minor Type 25 (File Statistics) log
entry when the process terminates. However, if the
system is enforcing a DEPTASKACCOUNTING value
of ANONYMOUS for the process, then at
termination time the system does not generate this
log entry. Instead, the system adds the file usage
statistics of the process to the file usage statistics of
the parent. (Refer to the discussion of the
DEPTASKACCOUNTING task attribute.)
8600 0502–407
FILEACCOUNTING
Mnemonic
Value
Integer
Value
IDENTIFIED
2
Meaning
The system generates File Open and File Close log
entries for this process. The system does not create
any File Statistics log entry for the process, nor does
it add file statistics for the process to the parent's
statistics.
Note that an operator can use the LOGGING
(Logging Options) system command to prevent
logging of any File Open and File Close log entries.
In this case, even processes with
FILEACCOUNTING = IDENTIFIED do not receive File
Open or File Close log entries.
Default and Inheritance
A process inherits the FILEACCOUNTING value of its parent.
The system administrator can use the ACCOUNTING (Resource Accounting) system
command to specify a system-wide default for FILEACCOUNTING. The system
administrator can also associate a default value with a usercode by including a
FILEACCOUNTING usercode attribute in the usercode definition in the USERDATAFILE.
When a process is initiated, the system assigns the FILEACCOUNTING task attribute the
maximum of its current value (whether assigned or inherited), the system default value,
and the usercode value. The integer values for each FILEACCOUNTING mnemonic were
previously listed under the “Explanation” subheading.
For example, suppose that FILEACCOUNTING has a value of ANONYMOUS in the task
variable, a value of IDENTIFIED at the system level, and a value of UNSPECIFIED at the
usercode level. At initiation time, the process is assigned a FILEACCOUNTING value of
IDENTIFIED by the system, because IDENTIFIED has a higher numeric value (2) than
ANONYMOUS or UNSPECIFIED.
On a system running InfoGuard software with a security class of S2, or with the security
option ANONACCOUNTING set to the value NOTOK, the system sets
FILEACCOUNTING to IDENTIFIED for all processes when they are initiated. This rule
overrides all of the other factors affecting the FILEACCOUNTING value.
8600 0502–407
4–11
FILECARDS
FILECARDS
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
See below
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
Synonym
Restrictions
24
FILE
None
Range
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ , ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÄÄÁÄ FILE ÄÁÄÄÄÄÁÄÁÄÄ´
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ , ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÄÄ ( ÄÁÄÄÄ = ÄÄÄÁÄ ) ÄÄÄÄÄÄÄÄÄÄÄÄ´
For descriptions of all the file attributes and the values they can be assigned, refer to the
File Attributes Programming Reference Manual.
4–12
8600 0502–407
FILECARDS
Explanation
The FILECARDS task attribute can be used to assign file attributes to one or more of the
files declared by the process. Assignments to the FILECARDS task attribute are
sometimes referred to as file equations. This task attribute is most frequently assigned
by the parent in order to cause a task to use a file different from the one it otherwise
would use.
The variable corresponds to the internal name of the file as it is
declared in the process. The internal name is the value of the INTNAME file attribute. If
INTNAME is not assigned for the file, then it receives the file identifier as its value. The
FILENAME file attribute has no effect on the internal name.
Thus, the following ALGOL file declarations both declare files with an internal name of
CARD:
FILE CARD(FILENAME="INPUT/DATA.");
FILE LINE(INTNAME="CARD.",FILENAME="INPUT/DATA.");
If the FILECARDS value assigns attributes to a file that is not declared in the process, no
error results, but the file attribute assignments are never used.
The file attributes assigned by FILECARDS are assigned to the logical file the first time
the process references the file. A process is said to reference a file whenever it
accesses a file attribute or opens a file. The FILECARDS file attribute assignments are
merged with those in the file declaration. Where there is a conflict, the values assigned
through FILECARDS override those assigned in the declaration. The file attributes
assigned by FILECARDS, in turn, can be overridden by file attribute assignment
statements later in the process.
FILECARDS can be assigned either before or during process execution. A given
FILECARDS assignment has no affect on files that the process has already referenced at
the time the FILECARDS assignment is made.
Note that, for a file declared within a procedure, the system creates a new logical file
each time the process enters that procedure, and deallocates the logical file each time
the process exits the procedure. The system applies the FILECARDS values to the logical
file the first time the process references the file after each time the process enters the
procedure.
Read Time
The FILECARDS task attribute can be read at any time from ALGOL. However, the value
returned is encoded in an internal form that does not resemble the original FILECARDS
assignments. The FILECARDS task attribute returns a null value if read from COBOL and
cannot be read from WFL at all.
Inheritance
Internal processes inherit the FILECARDS value of the parent.
8600 0502–407
4–13
FILECARDS
Overwrite Rules
In ALGOL or COBOL, if the FILECARDS attribute of a task variable is assigned more than
once, each assignment is merged with the previous value of the FILECARDS attribute. A
file attribute assignment in the existing value is overwritten only in the following cases:
•
If the new assignment specifies a different value for the same attribute of the same
file.
•
If a null string is assigned to FILECARDS. In this case, the FILECARDS value is
restored to null.
In WFL, a FILECARDS assignment is generally merged with the existing FILECARDS
value for the same task. However, if the same file is affected by two FILECARDS
assignments in the same statement, then the file might be affected only by the later
FILECARDS assignment. The two sets of FILECARDS assignments to that file are
merged only if at least one of the following conditions is true:
•
The later FILECARDS assignment includes an asterisk (*)
•
The construct in the later FILECARDS assignment is a string
primary.
If neither of the preceding conditions is true, then the first of the two FILECARDS
assignments in the statement is discarded. Refer to the WFL examples later under this
heading.
When a process is initiated, the FILECARDS values given through assignments to the
task variable, object code file assignments, and inheritance from the parent are merged
into a single FILECARDS value. If these sources assign conflicting values to the same file
attribute of the same file, then standard overwrite rules determine which file attribute
assignment takes precedence.
Examples
In WFL, the syntax for assigning FILECARDS is distinguished by several special features,
which are illustrated in the following example:
500 RUN OBJECT/DELTA ON PACK;
600
FILE OUT(KIND=DISK,TITLE=(BARNES)ACCUM/DATA ON ORDSPACK);
700
FILE IN=(JACOB)INPUT/DATA ON ORDSPACK;
800
FILECARDS CARD(KIND=READER);
The RUN statement at line 500 initiates a task. The statements at lines 600, 700, and 800
are all assignments to the FILECARDS attribute of that task. Although FILECARDS is a
string-valued task attribute, in WFL the FILECARDS value is not enclosed in quotation
marks ("). The assignment at line 600 shows how multiple file attributes can be assigned
to the same file. The assignment at line 700 shows an abbreviated syntax that can be
used if TITLE is the only attribute being assigned to a file. Line 800 shows the same
syntax as line 600, except that FILECARDS is used instead of its synonym FILE.
4–14
8600 0502–407
FILECARDS
The following example demonstrates how repeated FILECARDS assignments are
handled in WFL. The comments within the example explain the effects of each
assignment.
TASK T(FILE OUTFILE(KIND=READER,NEWFILE=TRUE,PROTECTION=SAVE));
% File OUTFILE receives all three file attribute assignments because
% they are all part of a single FILECARDS assignment
T(FILE OUTFILE(TITLE=A/B), FILE OUTFILE(KIND=DISK),
FILE SOURCE(KIND=TAPE), FILE SOURCE(*,TITLE=A/B));
% The second OUTFILE assignment overrides the first one, while the
% second SOURCE assignment is merged with the first one because of
% the asterisk. The resulting task assignment is equivalent to:
% (FILE OUTFILE(KIND=DISK), FILE SOURCE(KIND=TAPE,TITLE=A/B))
% However, this task assignment is merged with the FILECARDS
% assignment in the TASK T declaration, with the following result:
% (FILE OUTFILE(KIND=DISK,NEWFILE=TRUE,PROTECTION=SAVE),
% FILE SOURCE(KIND=TAPE,TITLE=A/B));
RUN OBJECT/TEST [T];
FILE OUTFILE(TITLE=OTHERDATA);
FILE OUTFILE(*,SECURITYTYPE=PUBLIC);
% The second OUTFILE assignment is merged with the first, because of
% the *. Then the result is merged with the previous assignments to
% the task variable, for the following combined effect:
% (FILE OUTFILE(KIND=DISK,NEWFILE=TRUE,PROTECTION=SAVE,TITLE=OTHERDATA,
% SECURITYTYPE=PUBLIC), FILE SOURCE(KIND=TAPE,TITLE=A/B);
The CANDE and MARC syntaxes for assigning FILECARDS are the same as the WFL
syntax, except that FILECARDS must be referred to by its synonym, FILE.
The ALGOL syntax for assigning FILECARDS also differs from that used to assign other
string-valued task attributes. The value is terminated by 48"00" instead of by a period (.).
The following is an example:
REPLACE CTASK.FILECARDS BY
"FILE CARD (KIND=DISK, TITLE=ALGOL/TASK);"
"FILE CODE (KIND=DISK, TITLE=OBJECT/ALGOL/TASK);" 48"00";
The following ALGOL statement resets the FILECARDS value to a null string:
REPLACE T.FILECARDS BY 48"00" ;
The following COBOL74 or COBOL85 statements assign attributes to two files. The
second assignment does not overwrite the first assignment, but rather is merged with it:
CHANGE ATTRIBUTE FILECARDS OF TASK-VAR-1 TO
"FILE CARD(KIND=DISK,TITLE=JUNK/JUNK);".
CHANGE ATTRIBUTE FILECARDS OF TASK-VAR-1 TO
"FILE LINE(KIND=DISK,TITLE=JUNK/JUNK3);".
8600 0502–407
4–15
FILECARDS
Run-Time Errors
FILECARDS ATTRIBUTE IS READONLY ON ACTIVE TASK
An attempt was made to assign the FILECARDS value of an in-use process. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYONACTIVEV).
FILECARDS ATTRIBUTE INCORRECT SYNTAX
There were one or more syntax errors in the file attribute assignments in the FILECARDS
value. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
4–16
8600 0502–407
FILEGROUP
FILEGROUP
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Overwrite Rules
See below
Host Services
Supported
Attribute Number
152
Synonym
None
Restrictions
None
Explanation
The FILEGROUP task attribute specifies the default group name to be assigned to the
GROUP file attribute of any newly created disk files that are owned by the task. The
FILEGROUP attribute can be set on the task or in the USERDATAFILE entry for a user.
The value set on the task always takes precedence over any value set in the
USERDATAFILE for the USERCODE associated with the task. Explicit assignment on the
file always takes precedence over any default value set on the task or assigned from the
USERDATAFILE.
Setting the FILEGROUP attribute to “.” deletes the value set on the task and restores
the default setting from the USERDATAFILE (if set).
Interrogating the FILEGROUP attribute only returns the value set on the task. The
FILEGROUP attribute set for the user is not returned by this task attribute. Use the
DEFAULTGROUP task attribute to determine the “effective” FILEGROUP value
associated with the task. Refer to the DEFAULTFILEGROUP task attribute description for
more information.
Setting the FILEGROUP attribute to 48"00" causes both the FILEGROUP value assigned
to the task and the task’s FILEGROUP value assigned from the USERDATAFILE to be
deleted. This can be used to disable any default group assignment by the task.
Inheritance
The FILEGROUP attribute set on the task is inherited from the parent if not set on the
child task.
The FILEGROUP attribute associated with the USERCODE follows inheritance of the
USERCODE attribute. That is, if the USERCODE attribute of a task is inherited from the
8600 0502–407
4–17
FILEGROUP
parent, then the task also inherits the user’s setting for the FILEGROUP attribute if it is
set in the parent task. If the user’s FILEGROUP value is not set on the parent task, then
any user FILEGROUP value for the child task is deleted.
When the USERCODE attribute of a task is changed, the task’s FILEGROUP value
associated with the user is changed to the value associated with the new usercode. For
task-to-task assignment of the USERCODE attribute, the value is assigned from the
source task variable. For string assignment of the USERCODE attribute, the value is
assigned from the USERDATAFILE. In either case, if the value is not set for the new
USERCODE, the user FILEGROUP value for the task is deleted. If the USERCODE
attribute of the task is set to “.”, then the user FILEGROUP value for the task is deleted.
The FILEGROUP value assigned to the task is unaffected by changes to the USERCODE
attribute.
4–18
8600 0502–407
FILEMASK
FILEMASK
Type
Real
Units
Not applicable
Range
0 to (2**9) - 1
Default
0
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Standard
Supported
143
Synonym
None
Restrictions
None
Explanation
The FILEMASK task attribute is used in conjunction with the SECURITYMODE file
attribute to control the security of newly created disk files. FILEMASK and
SECURITYMODE are related as follows:
•
Any bits that are set to 1 in the FILEMASK task attribute cause the corresponding
bits to be set to 0 in the SECURITYMODE attribute when a disk file is created by the
process. Note that this effect is stronger than establishing a default. Bits that are
set in the FILEMASK value override even SECURITYMODE bits that were previously
set by file attribute assignments in effect when creating the file.
•
Any bits that are set to 0 in the FILEMASK task attribute have no effect on the
corresponding bits of the SECURITYMODE attribute.
8600 0502–407
4–19
FILEMASK
The following are the effects of the individual bits in the FILEMASK value:
Field
Meaning if Set to 1
[47:39]
Field reserved for future use.
[08:01]
Prevents the owner from reading the file.
[07:01]
Prevents the owner from writing to the file.
[06:01]
Prevents the owner from executing the file.
[05:01]
Prevents group members from reading the file.
[04:01]
Prevents group members from writing to the file.
[03:01]
Prevents group members from executing the file.
[02:01]
Prevents other users from reading the file.
[01:01]
Prevents other users from writing to the file.
[00:01]
Prevents other users from executing the file.
This task attribute has no effect on the security of existing files.
For details about the SECURITYMODE file attribute, refer to the I/O Subsystem
Programming Guide and the File Attributes Programming Reference Manual.
Example
The following ALGOL statement sets all of the bits in the task's FILEMASK attribute.
MYSELF.FILEMASK := REAL (NOT FALSE);
The preceding statement causes all the file permission bits of the SECURITYMODE file
attribute to be set to 0 when the file is created.
4–20
8600 0502–407
GROUPCODE
GROUPCODE
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Never
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
None (read-only)
Supported
132
Synonym
None
Restrictions
None
Explanation and Inheritance
The GROUPCODE task attribute is a read-only attribute that specifies the group code of
the process. Group codes play the following roles in system security:
•
Group codes affect the file access rights accorded to processes. The
SECURITYMODE file attribute specifies file access rights for processes whose
GROUPCODE or SUPPLEMENTARYGRPS values match the GROUP attribute of a
file.
•
Group codes help control access rights for signals and semaphores, which are
described in the POSIX User's Guide.
When a process is initiated from a CANDE or MARC session, the GROUPCODE task
attribute inherits the value of the GROUPCODE usercode attribute associated with the
usercode of the process.
Similarly, whenever a WFL job is initiated, the GROUPCODE task attribute inherits the
value of the GROUPCODE usercode attribute associated with the usercode of the job.
For library processes initiated by the library linkage mechanism, GROUPCODE inherits
the GROUPCODE value of the process that is linking to the library.
Any process that inherits the USERCODE attribute from the parent also inherits the
GROUPCODE attribute from the parent.
8600 0502–407
4–21
GROUPCODE
If the SETGROUPCODE subattribute of the SECURITYMODE attribute of the code file
was set, then
•
The initial GROUPCODE value is taken from the GROUP attribute of the code file. A
copy of the initial GROUPCODE value is stored in the SAVEDGROUPCODE task
attribute. A copy of the GROUPCODE value the process would have received from
the initiating process is stored in the REALGROUPCODE task attribute. A process
can use various functions to toggle the GROUPCODE attribute value between the
values stored in the REALGROUPCODE and SAVEDGROUPCODE task attributes.
For further information about toggling between the real and saved group codes, refer
to the discussion of process identities in the Task Management Programming Guide.
•
The system nulls the GROUPCODE value in the task variable when the process
terminates.
If a process is initiated with a different USERCODE value than the parent, or if the
process is assigned a different USERCODE value after being initiated, then the system
automatically updates the GROUPCODE task attribute value in one of the following
ways:
•
If USERCODE is assigned the USERCODE value of another task variable, the system
updates the GROUPCODE value with the GROUPCODE of the other task variable.
For example, suppose the following statement is used:
REPLACE MYSELF.USERCODE BY TVAR.USERCODE;
In this case, the system copies the value from TVAR.GROUPCODE to
MYSELF.GROUPCODE.
•
If USERCODE is assigned in any other way, the system updates the GROUPCODE
task attribute with the value of the GROUPCODE usercode attribute for the new
usercode. For example, suppose the following statement is used:
REPLACE MYSELF.USERCODE BY "REXP/MYPASS.";
In this case, the system examines the REXP usercode definition in the
USERDATAFILE, and copies the value of the GROUPCODE usercode attribute to
MYSELF.GROUPCODE.
4–22
8600 0502–407
HISTORY
HISTORY
Type
Real
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
10
Synonym
None
Restrictions
None
Explanation
The HISTORY task attribute records the type of termination a process had, and if
termination were abnormal, it stores information about why the abnormal termination
occurred. The HISTORY value is divided into the following fields:
Field
Meaning
[47:01]
The operating system sometimes sets this bit for internal purposes.
[46:01]
If this bit is set, and field [07:08] stores a value of 4, then process initiation failed.
[45:01]
If this bit is set, the process cannot be discontinued.
[44:01]
This bit indicates a DS not trappable by TRY error-handling code unless the
PROTECTED option is set. For more information about the TRY statement, refer to
the Task Management Programming Guide.
[43:20]
The operating system sometimes stores information in this field for internal
purposes.
[23:08]
If the process was discontinued or is suspended, this field stores the specific
reason. This field corresponds to the value of the HISTORYREASON task attribute.
Refer to the HISTORYREASON description for details.
[15:08]
If this process was discontinued or is suspended, this field stores the general
reason. This field corresponds to the value of the HISTORYCAUSE task attribute.
Refer to the HISTORYCAUSE description for details.
[07:08]
This field stores information about the process state. If the process has
terminated, this field also records the general type of termination. This field
corresponds to the value of the HISTORYTYPE task attribute. Refer to the
HISTORYTYPE description for details.
For details about how to access these fields, refer to “Accessing Task Attributes at the
Bit Level” in Section 1.
8600 0502–407
4–23
HISTORYCAUSE
HISTORYCAUSE
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Supported
67
Synonym
None
Restrictions
None
Explanation
The HISTORYCAUSE task attribute specifies what general type of condition caused the
process to terminate abnormally or to suspend. The HISTORYCAUSE value is the same
as field [15:08] of the HISTORY task attribute.
If the process did not terminate abnormally and is not suspended, the HISTORYCAUSE
value is 0. No mnemonic is associated with this value.
If the process terminated abnormally, then the HISTORYTYPE value is DSEDV, and the
following are the possible HISTORYCAUSE values and their meanings:
Mnemonic Value
Integer
Value
(none)
0
The process has not been initiated, is still in use, or
terminated normally.
OPERATORCAUSEV
1
The process was discontinued by a system
command such as DS (Discontinue).
PROGRAMCAUSEV
2
The process was deliberately terminated for one of
the following reasons:
RESOURCECAUSEV
4–24
3
Meaning
•
A value of TERMINATED was programmatically
assigned to the STATUS task attribute.
•
The process attempted an action that is not
allowed by the operating system.
The process was terminated for exceeding a
resource limit, such as MAXPROCTIME or
MAXIOTIME.
8600 0502–407
HISTORYCAUSE
Mnemonic Value
Integer
Value
FAULTCAUSEV
4
The process was terminated because it requested a
machine operation that could not be executed, such
as dividing by zero or reading past the end of an
array.
SYSTEMCAUSEV
5
The process was terminated because it violated a
system parameter, such as overlay row size or the
amount of memory allowed.
DCERRCAUSEV or DCERRV
6
The process was terminated because of a data
comm error.
IOERRCAUSEV or IOERRV
7
The process was terminated because of a physical
I/O error.
SOFTIOERRCAUSEV or
SOFTIOERRV
8
The process was terminated because of a logical I/O
error.
NEWIOERRCAUSEV or
NEWIOERRV
9
The process was terminated because of an error in
opening a file.
UNIMPLEMENTEDCAUSEV
or UNIMPLEMENTEDV
10
The process was terminated because it attempted
to use a feature that has not been implemented.
UNSPECIFIEDCAUSEV
11
The process was terminated because of an error of
an unknown type.
EBDMSERRCAUSEV or
EBDMSERRV
12
The process was terminated because of a Data
Management System II (DMSII) error.
NETWORKCAUSEV
13
The process was terminated because of a BNArelated error. For example, the process might have
failed initiation because of a missing host or a
missing object code file on a remote host.
SOFTIOERR2CAUSEV or
SOFTIOERR2V
14
The process was terminated because of a logical I/O
error.
Meaning
If the process is suspended, then the HISTORYTYPE value is STEDV, and the following
are the possible HISTORYCAUSE values and their meanings:
Mnemonic Value
Integer
Value
OPERATORCAUSEV
1
The process was suspended by the ST (Stop)
system command.
PROGRAMCAUSEV
2
The process was suspended for one of the following
reasons:
8600 0502–407
Meaning
•
A resource needed by the process is missing.
•
The STATUS task attribute was
programmatically assigned a value of
SUSPENDED.
4–25
HISTORYCAUSE
Mnemonic Value
Integer
Value
SYSTEMCAUSEV
5
The process was suspended because of a shortage
of available memory.
NETWORKCAUSEV
13
The process was suspended because of a BNA
condition.
Meaning
For a list of process termination messages and their relationship to HISTORYCAUSE
values, refer to the discussion of process history in the Task Management Programming
Guide.
4–26
8600 0502–407
HISTORYREASON
HISTORYREASON
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
None (read-only)
Supported
68
None
Not available in WFL; however, for a
description of how to extract the same
information from the HISTORY task
attribute, refer to “Accessing Task
Attributes at the Bit Level” in Section 1.
Explanation
The HISTORYREASON task attribute indicates the specific reason why a process
terminated abnormally, failed to initiate or was suspended. The HISTORYREASON value
corresponds to field [23:08] of the HISTORY task attribute.
Most HISTORYREASON integer values have mnemonics associated with them. Each
mnemonic briefly describes one reason this HISTORYREASON integer value could have
occurred. You can determine which mnemonic applies in a particular case by using the
HISTORYREASON integer value with the HISTORYTYPE and HISTORYCAUSE values.
If the process did not terminate abnormally and is not suspended, the HISTORYREASON
value is 0. No mnemonic is associated with this value.
One standard method of reading mnemonic-valued task attributes might yield confusing
results if applied to HISTORYREASON. The following is an ALGOL example of this
method:
IF T.HISTORYREASON = VALUE(DIVIDEBYZEROV) THEN ...
The mnemonic DIVIDEBYZERO is associated with a HISTORYREASON value of 1. The
expression shown in the example evaluates to TRUE whenever HISTORYREASON has a
value of 1. However, a HISTORYREASON value of 1 indicates a DIVIDEBYZERO error
only if HISTORYTYPE = DSEDV and HISTORYCAUSE = FAULTCAUSEV.
8600 0502–407
4–27
HISTORYREASON
The following is a better method of reading HISTORYREASON. This example evaluates
to TRUE only if a DIVIDEBYZERO error occurred:
IF T.HISTORYTYPE = VALUE(DSEDV)
AND T.HISTORYCAUSE = VALUE(FAULTCAUSEV)
AND T.HISTORYREASON = VALUE(DIVIDEBYZEROV) THEN ...
The following pages list the possible HISTORYREASON values for each combination of
HISTORYTYPE and HISTORYCAUSE values. For HISTORYREASON values that have
mnemonics, the mnemonics are listed under the column heading “Mnemonic Value.”
For HISTORYREASON values that do not have mnemonics, a short explanatory phrase is
listed under the column heading “History Reason (No Mnemonic).”
HISTORYTYPE = 3 (STEDV), HISTORYCAUSE = 1 (OPERATORCAUSEV)
Integer Value
Mnemonic Value
0
(No mnemonic. This value means the ST (Stop) system command
was entered from an ODT.)
1
REMOTELYCAUSEDV
HISTORYTYPE = 3 (STEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
1
Mnemonic Value
RESPONSEREQUIRED
HISTORYTYPE = 3 (STEDV), HISTORYCAUSE = 13 (NETWORKCAUSEV)
Integer Value
3
Mnemonic Value
SUSPENDEDV
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 1 (OPERATORCAUSEV)
Integer Value
4–28
Mnemonic Value
0
RSVPV
1
CLEARUNITV
2
JUSTDSEDV
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
8600 0502–407
Mnemonic Value
0
MISSINGCODEFILENAMEV
1
MISSINGCODEFILEV
2
ALREADYRUNNINGV
3
INITACTIVETASKV
4
NOEXTERNALRUNV
5
VISITNONACTIVEV
6
ILLEGALVISITV
7
DYNCODEEOFV
8
BADD1STRETCHV
9
ATTREADONLYV
11
NOTSESSIONNUMBERV
12
NONANCESTRALTASKFILEV
13
NOTIMPLEMENTEDV
14
INVALIDCHARGECODEV
15
INCOMPATIBLEBOXESV
18
DEATHINFAMILYV
19
CRITICALBLOCKV
20
BADGOTOV
23
INVALIDPARAMETERV
25
INCOMPATIBLECODEV
26
NOTEXECUTABLEV
27
UNMATCHEDPARAMSV
28
INVCOMPILERVV
29
SECURITYERRORV
30
LIBMAINTV
31
ILLEGALTASKXFERV
32
BADRESIZEDEALLOCV
33
READONLYONACTIVEV
37
MISSINGINTRINSICV
38
INCOMPATIBLELEVELV
39
INFANTICIDEV
40
NOTBOUNDV
41
ILLEGALOWNARRAYV
4–29
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
4–30
Mnemonic Value
42
DIMSIZERRORV
43
UPLEVELATTACHV
44
ILLEGALSWAPV
46
BADTASKATTRIBUTEV
47
MISSINGCARDDECKV
48
BADRESTARTV
49
BADEVENTUSAGEV
50
BADGIVELOCKV
51
BADGETLOCKV
52
ONLYMCSMAYSETV
53
DCKEYINSIZEV
54
ONLYMCSTASKINGV
56
NONOWNERACCESSV
57
COMPILERSONLYV
58
TASKLIMITEXCEEDEDV
59
AXBADARRAYV
60
RUNTIMEWFLV
61
COMPILERERRORV
62
XSPARAMSV
63
SORTKILLV
66
LIBMISSINGNAMEV
68
LIBNOTINITIATEDV
69
CYCLICPROVISIONV
70
PREVIOUSLYFROZENLIBV
71
LIBIMPLEMENTATIONERRORV
73
NONUNIQLIBV
74
SAVELIBTASKNEVERCALLEDV
75
LIBNEVERFROZEV
77
BADLIBTASKV
78
LIBFEATURENOTIMPLEMENTEDV
79
BADCOMPILERINDEXV
80
LIBNOTPROCESSEDORRUNV
82
INVALIDPARAMV
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
8600 0502–407
Mnemonic Value
83
FORTRANERRV
84
PLIRUNTIMEERRV
85
INTRINSICSERRV
86
MATHERRV
87
FORMATERRV
88
LIBDEIMPLEMENTATIONERRORV
89
LIBLEVELINCOMPATIBLEV
90
BADLIBTITLEV
91
CANTLINKTOASYSTEMLIBV
92
NOTASYSTEMLIBV
93
NOTLIBRARYCAPABLEV
94
LISTSERRORV
95
LIBPARENTNOTALIBV
96
HOLDNOTALLOWEDV
97
INVALIDATTVALUEV
98
UNAUTHORIZEDLIBUSEV
99
FOREIGNTASKINITFAILV
100
PORTSERRORV
101
LIBCANCELERRV
102
INVALIDSAVECORELIMITV
103
NONVISTASKFILEV
104
BADINSCRIBEV
105
BADERASEV
106
CLIENTDIEDINACRV
107
BADPOBOXUSAGEV
108
INVALIDSTKNOV
109
BADTCPREQV
110
BYRESTRICTIONV
111
LIBWRONGMARKLEVELV
112
NOINITIATORV
113
UPLEVELTASKASSIGNV
114
FRAMEEXCEEDEDV
115
CODEFILEINCOMPATIBLEWITHMCPV
4–31
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
4–32
Mnemonic Value
116
CODEFILENOTACTIVEV
117
BADPPBV
123
STACKHASFAMILYV
124
FASTTASKFAULTEDV
125
DATABASEDIEDV
126
LIBRARYDIEDV
127
STACKHASUNITATTACHEDV
128
RESTRICTEDACCESSV
129
ATTWRITEONLYV
130
NONANCESTRALEXCEPTEVENTV
131
INCORRECTSYNTAXV
132
ATTACCESSFAULTV
133
INVALIDLSNV
134
DATACOMMNOTACTIVEV
135
VALUETOOLARGEV
136
PRIVILEGEREQUIREDV
137
NONLOCALACCEPTEVENTV
138
INVSCHEDACTV
139
INVTIMESTATV
140
INVREACTIVATEV
141
INVSOURCEV
142
INVDUMPPARAMV
143
INVCPMACTIONV
144
INVPREFACTIONV
145
INVDISCONNECTV
146
INVDESTINATIONV
147
BLOCKHASNOSCWV
148
PRPROVIDERGONEV
149
LIBWRONGCODEFILEV
150
STEPPARENTDIEDV
151
CRITICALSBDESTROYDV
152
BADCLINDEXV
153
BADAPPROVALRSLTV
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 2 (PROGRAMCAUSEV)
Integer Value
Mnemonic Value
154
CHANGEFAULTV
155
APPROVALFAULTV
156
LINKFAILEDV
157
LINKNOTALLOWEDV
158
AUTOLINKERRV
159
CIAINCORRECTSTATEV
160
CIABADPARAMETERV
161
CIABADLEVELSV
162
CIADSEDV
163
CIAUNSUPPORTEDV
164
BADFPBV
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 3 (RESOURCECAUSEV)
Integer Value
8600 0502–407
Mnemonic Value
0
PROCESSEXCEEDEDV
1
IOEXCEEDEDV
2
STACKEXCEEDEDV
3
PRINTEXCEEDEDV
6
MEMORYEXCEEDEDV
8
TAPEEXCEEDEDV
9
WAITEXCEEDEDV
10
ELAPSEDEXCEEDEDV
12
STRINGPOOLEXCEEDEDV
13
FAMILYSIZEEXCEEDEDV
14
SAVECORELIMITEXCEEDEDV
15
CAUEXCEEDEDV
16
SEGLIMITEXCEEDEDV
4–33
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 4 (FAULTCAUSEV)
4–34
Integer Value
Mnemonic Value
1
DIVIDEBYZEROV
2
EXPOVERFLOWV
3
EXPUNDERFLOWV
4
INVALIDINDEXV
5
INTEGEROVERFLOWV
6
INACTIVEQV
7
MEMORYPROTECTV
8
INVALIDOPV
9
LOOPV
10
MEMORYPARITYV
11
SCANPARITYV
12
INVALIDADDRESSV
13
STACKOVERFLOWV
14
STRINGPROTECTV
16
FALSEASSERTV
17
SEQUENCEERRORV
18
INVALIDPCWV
19
STACKUNDERFLOWV
21
LIBLINKERRORV
22
INVALIDINTV
23
MEMFAIL1V
26
MEMORYFAIL2V
30
PROCINTERNALV
35
PROCDIEDV
37
BCLPOINTERV
40
DISKPARITYV
41
EMODEVIOLATIONV
42
NOACTIVELINKV
43
PROCLINKPARITYV
45
BOTTOMOFSTACKV
46
RUNLIGHTOUTV
47
STACKSTRUCTUREV
48
BADMSCWV
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 5 (SYSTEMCAUSEV)
Integer Value
Mnemonic Value
1
NOMEMV
2
PARITYONPBITV
3
ARRAYTOOLARGEV
4
INCOMPATIBLEWFLJOBFILEV
8
FORCIBLECLOSEV
The process was using an object code file or a data file on a disk
unit that was closed by the CLOSE PK :DS form of
the CLOSE (Close Pack) system command.
9
SOFTINTERRORV
The MCP encountered an error while handling software interrupts.
10
APPLICATIONTIMEOUTV
A registered application failed to check in.
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 6 (DCERRCAUSEV)
Integer Value
History Reason (No Mnemonic)
10
Message size error
12
Unknown file or station
13
File subtraction error
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 7 (IOERRCAUSEV)
Integer Value
History Reason (No Mnemonic)
0
Either a train printer I/O error occurred and could not be resolved, or
else the MCP procedure PATHRES did not successfully complete.
PATHRES performs functions such as loading disk controller
firmware.
6
Direct I/O attribute error
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
8600 0502–407
History Reason (No Mnemonic)
0
No error
1
Label parity error
2
Parity error on position
4–35
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
4–36
History Reason (No Mnemonic)
3
Invalid translation
4
Incompatible blocking
5
Illegal output reverse
6
Illegal input reverse
7
Short tape blocking
8
Illegal output file
9
No buffer space
10
No space in header
11
Duplicated file
12
Illegal direct I/O
14
Exceeded resources
15
No unit
16
Illegal optional file
17
Illegal final reel
18
Too many names
19
Failed entry
20
Illegal MYUSE value
21
Illegal NEWFILE value
22
DCOPEN failed
23
No write ring
24
Failed volume entry
25
Illegal unlabeled volume
26
Illegal BLOCKSTRUCTURE or FILETYPE
27
Illegal reel number
28
Find routines failed
29
Illegal backward seek
30
Illegal read reverse
31
Illegal seek
32
Parity error on seek
33
Read on output file
34
Read on unopened file
35
Read reverse on unopened file
36
Seek on unopened file
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
8600 0502–407
History Reason (No Mnemonic)
37
Space forward on output file
38
Write on code file
39
Write on input file
40
Write on unopened file
41
Buffer in use
42
Up-level event
43
Security error
44
No room for buffer
45
Unknown error
46
Logic error
47
Already closed
48
No read before rewrite
49
No read before delete
50
Delete on non-I/O file
51
Illegal update file
52
Incompatible file organization
53
Close not called
54
File information block (FIB) stack transition error
55
Locking error
56
Kind list not allowed
57
Dialog communication failure with other host
59
File not removed on disk
60
File not cataloged
61
Checkpoint file title not changed
62
Write user label error
63
RELEASEHEADER error
64
Tried to write beyond end of file (EOF)
65
Rewrite on non-I/O file
66
Logical/physical file mismatch
67
Seek on output file
68
Tape position error
69
Distributed systems service (DSS) cannot handle this file
70
Access restricted to APL
4–37
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
4–38
History Reason (No Mnemonic)
71
Open after close with lock
72
Illegal write random
73
Illegal read random
74
Not closed
75
Unexpected I/O error
76
Exception in IOHANDLER
77
Cannot link to IOHANDLER
78
Data error
79
Deleted/duplicate record
80
Parity error
81
I/O not done
82
Invalid subfile
83
Broadcast read error
84
Subfile is closed
85
No available buffer
86
No available message
87
Port not connected
88
End of file (EOF)
89
Illegal short block read
90
Break on output
91
Unit in rewind
92
Time limit exceeded
93
File not available
94
No file
95
Mismatched genealogy
96
Mismatched serial number
97
File not resident
98
Pack not present
99
Invalid access code
100
Foreign file open error
101
Port offer error
102
Illegal hostname for foreign file
103
Data might have been lost
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
8600 0502–407
History Reason (No Mnemonic)
104
Record count error
105
Block count error
106
Host not reachable
107
Write lockout
108
FRAMESIZE and INTMODE values incompatible
109
Binary I/O not allowed
110
End of page
111
BCL not allowed on this machine
112
No continuation pack for audited file
113
Cannot be audit file
114
I/O error occurred during flushing of buffers
115
Too many backup files
116
Maximum audit length exceeded
117
Unable to position file at end
118
Unsupported function
119
Bad use of use routines
120
Must have usercode to use DSS
121
Invalid port name
122
Requires direct I/O
123
SB must contain a disk/pack unit
124
EIO logic error
125
Invalid array index
126
Incompatible I/O length
127
SIZEVISIBLE/FRAMESIZE/INTMODE value conflict
128
I/O error occurred during closing of file
129
I/O support library error
130
I/O error
131
INQ_LIST allocation failed
132
End file not allowed
133
I/O error changing host control (HC) unit access mask register
(AMR)
134
Unsupported protocol type
135
Protocol error
136
No resource to open port
4–39
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
4–40
History Reason (No Mnemonic)
137
YOURHOST is not in YOURHOSTGROUP
138
User is not an authorized user of the application group
139
Support library unavailable
140
Error in one or more port-subfiles open operations
141
Error in one or more port-subfiles close operations
142
Incompatible attribute value or values
143
Function not available
144
Unacceptable character set
145
Networking not supported
146
TRANSLATE=FORCESOFT not allowed with binary I/O
147
I/O error clearing adapter or unit
148
Access restrictions not met
149
Cannot create restricted file
150
Security error on output tape open
151
Cannot write on guard file
152
Logical I/O not supported for this type of unit
153
Attribute already set in physical file
154
FAMILYOWNER conflicts with task usercode
155
Illegal I/O to coactive disk
156
Coactive unit not in output mode
157
Incompatible with this MCP version
158
DSS dialogue number too large for logical I/O
159
I/O error occurred during closing of file
160
Tape drive mode change operation failed
161
BYTES is not supported by this unit
162
Random add not allowed unless delete-capable
163
Not delete-capable
164
Record has not been read
165
Beyond extend area
166
Record not locked
167
Record position occupied
168
Sequential write not permitted to EFS direct file
170
Attempt to exceed family limit
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
8600 0502–407
History Reason (No Mnemonic)
171
Family integral limit exceeded
172
Attempt to exceed temporary file limit
174
Illegal write option specified
175
Invalid specification of ANYSIZEIO
176
Area length exceeds maximum allowed
177
Logical file INTMODE incompatible with permanent file
FRAMESIZE
178
Incompatible FILESTRUCTURE
179
Permanent file FILESTRUCTURE must be STREAM
180
Logical file MAXRECSIZE inconsistent with permanent file
MAXRECSIZE
181
Logical file BLOCKSIZE inconsistent with permanent file
BLOCKSIZE
182
MAXRECSIZE exceeds AREALENGTH
183
Logical file FRAMESIZE incompatible with permanent file area
length
184
Unsupported parameter for this service
185
Local interprocess communication (IPC) not supported for this
service
186
Unsupported translation for this service
187
DIOFILESTRUCTURE value requires FILESTRUCTURE to be set
188
Not in proper state for direct I/O to unit EIO
189
Cannot access a file of this FILEKIND
190
Open rejected by correspondent
191
Close rejected by correspondent
192
Endpoint not registered
193
Invalid respond option
194
Service invalid for provider
195
Provider restricted
196
Connect time limit exceeded
197
Correspondent does not support APPLICATIONCONTEXT value
198
Correspondent rejected DEFAULTPCONTEXT value
199
Invalid value or values for DEFINEDPCONTEXTSET
200
Warning—DEFINEDPCONTEXTSET values have changed
201
Warning—port attribute ignored
4–41
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
4–42
History Reason (No Mnemonic)
202
Invalid associated data
203
Associated data too long
204
Invalid attribute values for respond
205
Invalid attribute values for AWAITOPEN
206
DEPENDENTSPECS must be TRUE when
DIOFILESTRUCTURE=SECTORSTREAM
207
Warning—initiator close collision
208
Warning—responder close collision
209
Endpoint incompatible with service
210
Unsupported primitive
211
Open failure in KEYEDIO library
212
Read reverse is not supported by this unit
213
Specified MAXRECSIZE is not supported by this unit
214
MAXRECSIZE must equal BLOCKSIZE for this unit
215
MCP does not support Enterprise Database Server use of this
FILESTRUCTURE
216
Insufficient disk space
217
Operator entered OF (Optional File) system command
218
KEYEDIOII write error occurred
219
Unmatched DIOFILESTRUCTURE value
220
Invalid connect TIMELIMIT value
221
Error encoding data
222
No data available to be read
223
Error on broadcast write
224
No buffer available for write
226
Open data was received
227
Open response data was received
228
Close request data was received
229
Close abort data was received
230
Close response data was received
231
More data to come
232
Fault in use routine
233
Logical file MINRECSIZE inconsistent with permanent file
MINRECSIZE
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 8 (SOFTIOERRCAUSEV)
Integer Value
History Reason (No Mnemonic)
233
Logical file MINRECSIZE inconsistent with permanent file
MINRECSIZE
234
BASICSERVICE violation
235
Action not valid in this FILESTATE
236
Transparent LOCALSYNTAX cannot be supported for this subfile
237
Open aborted by correspondent
238
Open rejected—transient
241
Requested PROVIDERGROUP not defined
244
Write on read-only file
245
During a file open, either the CENTRALSUPPORT library could not
be accessed, or CENTRALSUPPORT reported an error related to
CCSVERSION validation, INTMODE/EXTMODE validation, or
translation tables availability
248
Operation requires ownership of all available tokens
249
Tape was changed while assigned
250
Word oriented access not supported for KIND=CD
251
NETBIOS name in use
252
Warning: switching between read and write might result in program
being discontinued
253
Print System error during backup file open
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 9 (NEWIOERRV)
Integer Value
Mnemonic Value (No Mnemonic)
20
Data error—no label
37
Remote backup disk error
38
Unknown station
39
Invalid set of attributes
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 10 (UNIMPLEMENTEDCAUSEV)
Integer Value
1
8600 0502–407
Mnemonic Value
DYNAMICOWNARRAYV
4–43
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 12 (EBDMSERRCAUSEV)
There are no mnemonics. The possible numeric values correspond to the category
numbers for major categories of Enterprise Database Server exceptions and errors. For a
list of the major category numbers and their meanings, refer to the MCP/AS DMSII
Application Program Interfaces Programming Guide or the MCP/AS DMSII Interpretive
Interface Programming Reference Manual. (Both manuals include the same list of
exception and error values.)
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 13 (NETWORKCAUSEV)
Integer Value
Mnemonic Value
1
DISCONNECTEDV
5
HOSTNOTREACHABLEV
12
TASKPROTOCOLERRORV
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 14 (SOFTIOERR2CAUSEV)
Integer Value
4–44
History Reason (No Mnemonic)
12
Reopen stopped by TAPEMANAGER
13
Creation stopped by TAPESERVER
14
Library cannot open this file
15
Assignment stopped by TAPEMANAGER
16
X400: All segments of data were not sent
17
Warning: Attempt to purge LOCKEDFILE tape
18
Warning: Attempt to purge write-protected tape
19
Domain name error: Resolver not available
20
Domain name error: Name service not available
21
Domain name error: Name service unreachable
22
TCP: Connection in use
23
KEYEDIOII: Deadlock, deadly embrace
24
KEYEDIOII: Deadlock, timeout
25
Disk address out of range
26
Destination unreachable
27
An open or close error was reported by the IOHANDLER library
28
Invalid specification of BUFFERSHARING
29
File open with exclusive BUFFERSHARING
30
File open without BUFFERSHARING
31
Last I/O before REWRITE or DELETE must be a READ
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 14 (SOFTIOERR2CAUSEV)
Integer Value
8600 0502–407
History Reason (No Mnemonic)
32
Different length record
33
Port file read failed: Buffer less than a segment
34
Port file read failed: Data length specified exceeds the buffer size
35
Port file read failed: Data length exceeds 63000
36
Port file read failed: All segments were not sent
37
Port file read failed: Segment I/O attribute was not set
38
Open error: UNIQUETOKEN expansion exceeds node size
39
Blocks of both logical and permanent file must be integral number
of sectors
40
My application process title not recognized
41
My application process invocation ID not recognized
42
My application entity invocation ID not recognized
43
My application entity qualifier not recognized
44
Your application process title not recognized
45
Your application process invocation ID not recognized
46
Your application entity invocation ID not recognized
47
Your application entity qualifier not recognized
48
Invalid specification of APPEND
49
Random write with APPEND set
50
Attempt to purge unlabelled tape
51
Illegal SEEK option specified
52
Illegal READ option specified
53
Incompatible attributes on OPEN where FILEKIND=FIFO
54
FIFO currently has no readers
55
FIFO in use from this logical file
56
Write to FIFO which has no readers
59
Invalid control value for laser beam printer file
60
File already exists
63
Invalid use of TRUNCATE option
64
Open type incompatible with retained file
65
Open type incompatible with duplicated file
67
EXTMODEs of logical file and physical file incompatible
68
Cannot use file, ‘AREAS’, ‘AREASIZE’, or file too large
69
Incompatible FILEUSE specified
4–45
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 14 (SOFTIOERR2CAUSEV)
Integer Value
4–46
History Reason (No Mnemonic)
70
Incompatible attributes on OPEN where FILEKIND indicates a
special file
71
The permanent directory already exists
72
The permanent directory is not empty
73
Name contains too many nodes
74
Name contains invalid character
78
Read/write interrupted by signal
79
Read/write interrupted by signal, process group is orphaned
85
Sequential I/O after reaching EOF
86
Sequential I/O after unsuccessful seek
87
Interrupted by signal during OPEN
89
Incompatible attributes on OPEN where FILEKIND indicates a
permanent directory
90
File IDs longer than 17 characters are not allowed for this kind of
file
91
The complex translation failed because the array was too small to
hold the translated data
92
The complex translation failed because it ran out of source data
prematurely
93
The complex input translation (EXTMODE to INTMODE) failed
because it is not supported by the CENTRALSUPPORT library
94
The complex output translation (INTMODE to EXTMODE) failed
because it is not supported by the CENTRALSUPPORT library
95
An error occurred in the CENTRALSUPPORT library
96
A fault occurred in the CENTRALSUPPORT library
97
The SYSTEM/CCSFILE is not accessible or is missing
98
User-supplied translate tables cannot be used when complex
translation is required
99
Complex translation is not allowed or supported for this file
100
Complex characters are not allowed or supported for this file
101
The CENTRALSUPPORT library does not support complex
translation for the INTMODE/EXTMODE values provided
102
The target family for the new permanent directory is not present or
is not a volumed disk
103
Cannot open a new file on a shared disk family with this share level
104
The file must be input only or output only
106
A value of the EXTDELIMITER attribute was specified that is
incompatible with the other attributes of the file
8600 0502–407
HISTORYREASON
HISTORYTYPE = 4 (DSEDV), HISTORYCAUSE = 14 (SOFTIOERR2CAUSEV)
Integer Value
History Reason (No Mnemonic)
107
An IOHANDLER library did not recognize the version of the INFO
array passed to the open routine, and rejected the open
108
The IOHANDLER detected an error in the IOHSTRING parameter
set in the virtual file and passed to the IOHANDLER library open
procedure
109
The REDIRECTOR IOHANDLER library encountered a protocol error
communicating with the server
110
The REDIRECTOR IOHANDLER library could not establish the
required NETBIOS session with the server. The address or name of
the server is incorrectly specified, the server is offline, or the
underlying network software is not working
111
The server responded to the REDIRECTOR negotiate protocol
request indicating that it did not support any of the protocols the
REDIRECTOR supported
112
The server rejected the credentials supplied during the session
setup phase of file open
113
The server rejected the open for capacity reasons
114
The server rejected the share connection requested
115
The file name supplied during the OPEN of a redirected file was
invalid for REDIRECTOR
116
The file name supplied during the OPEN of a redirected file
indicated that it was formatted as a UNC (Uniform Naming
Convention) file name, but was incorrectly formatted
117
The BLOCKSTRUCTURE value for the logical file is incompatible
with the BLOCKSTRUCTURE value for the permanent file
119
Library cannot close this file
Examples
Suppose that the following task attributes have the values shown:
HISTORYTYPE = 4 (DSEDV)
HISTORYCAUSE = 4 (FAULTCAUSEV)
HISTORYREASON = 1
In this context, a HISTORYREASON of 1 means DIVIDEBYZEROV. In other words, the
process was discontinued because it attempted to divide by zero.
8600 0502–407
4–47
HISTORYREASON
Now suppose that these task attributes have the following values:
HISTORYTYPE = 4 (DSEDV)
HISTORYCAUSE = 3 (RESOURCECAUSEV)
HISTORYREASON = 1
In this context, a HISTORYREASON of 1 means IOEXCEEDEDV. In other words, the
process was discontinued because it used more I/O time than was allowed by its
MAXIOTIME task attribute value.
4–48
8600 0502–407
HISTORYTYPE
HISTORYTYPE
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
NORMALV
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Supported
66
Synonym
None
Restrictions
None
Explanation
The HISTORYTYPE indicates the type of termination that occurred for a process. The
HISTORYTYPE value is identical to field [07:08] of the HISTORY task attribute. Possible
values are as follows:
Mnemonic Value
Integer
Value
NORMALV
0
The process is still in-use or has not yet been
initiated.
DUMPINGV
1
The process is performing a program dump.
QTEDV
2
The QT system command was used against the
process.
STEDV
3
The process is suspended.
DSEDV
4
The process was discontinued (terminated
abnormally).
NORMALEOTV
5
The process terminated normally.
SYNTAXERRORV
6
The process was a compilation that failed because
of syntax errors in the source program.
UNKNOWNEOTV
7
The process was terminated by an unknown cause
or by a cause related to job queues.
DSEDINEPILOGV
8
The process was a WFL job whose initiation failed
because the job attribute list included an invalid task
attribute assignment; or, the process is executing an
EPILOG procedure after having been discontinued.
8600 0502–407
Meaning
4–49
HOSTNAME
HOSTNAME
Type
String
Units
Not applicable
Range
Default
None
Read Time
Anytime
Write Time
Before initiation
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
64
Synonym
None
Restrictions
None
Range
A valid HOSTNAME contains from 1 to 17 alphanumeric characters that include the
uppercase letters A through Z and the numerals 0 through 9 only.
Explanation
The HOSTNAME task attribute specifies the host system on which the process runs.
If HOSTNAME is specified before initiation, the object code file is searched for and
initiated on the requested host. If HOSTNAME is read after initiation, it returns the name
of the host where the process is running.
For general information about initiating and controlling tasks on remote host systems,
refer to the discussion of tasking across multihost networks in the Task Management
Programming Guide.
Overwrite Rules
Standard overwrite rules apply, except that HOSTNAME task attribute assignments
should not be made to an object code file. If HOSTNAME is assigned to an object code
file, the process is immediately discontinued as soon as it is initiated.
4–50
8600 0502–407
HOSTNAME
Run-Time Errors
HOSTNAME ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign HOSTNAME a value that did not follow the simple name
syntax. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
HOSTNAME ATTRIBUTE IS READONLY ON ACTIVE TASK
An attempt was made to assign a HOSTNAME value to an in-use process. The assigning
process, if nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV)
and HISTORYREASON = 33 (READONLYONACTIVEV).
ILLEGAL HOST-TO-HOST TRANSFER OF TASK
An attempt was made to initiate a process with a compiled-in HOSTNAME task attribute
value. The initiating process is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 31 (ILLEGALTASKXFERV).
8600 0502–407
4–51
HSPARAMSIZE
HSPARAMSIZE
Type
Integer
Units
See below
Range
Default
Read
–65535 to +65535
0
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
70
Synonym
None
Restrictions
None
Explanation
The HSPARAMSIZE task attribute records the total length of the parameters passed to
this process. This attribute is mainly intended for use by the system software, but can
also be read by application programs.
Units
If the value of HSPARAMSIZE is less than 0, the length is expressed in words. If the
value of HSPARAMSIZE is greater than 0, the length is expressed in bytes.
4–52
8600 0502–407
INHERITCREDENTIALS
INHERITCREDENTIALS
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
TRUE
Read Time
Anytime
Write Time
Before initiation
Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
Standard
Not supported
149
INHERITCREDS
None
Explanation
The INHERITCREDENTIALS attribute controls the inheritance of credentials.
By default, credentials are inherited unless the parent task’s credentials are blocked.
Credentials are copied if the initiation is for an independent task or if CREDENTIALSBASE
is set to TRUE. In all other cases, credentials are shared with the parent task.
For information about credential management and Generic Security Service Application
Program Interface (GSS-API), see Appendix G in the Security Administration Guide.
Examples
The following examples show the syntax used to run a program that needs to use server
credentials:
•
To run a program, from MARC or CANDE, that needs to use server credentials, enter
the following command:
RUN SYSTEM/SPECIAL/SERVICE; CREDENTIALSBASE
•
To run a program, from MARC or CANDE, that needs to use server credentials but is
not allowed to use the credentials of a particular user’s session, enter the following
command:
RUN SYSTEM/SPECIAL/SERVICE; CREDENTIALSBASE; INHERITCREDENTIALS = FALSE
8600 0502–407
4–53
INHERITMCSSTATUS
INHERITMCSSTATUS
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
See below
Read Time
See below
Write Time
See below
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
FALSE
See below
Not supported
92
None
Not available in WFL
Explanation
The INHERITMCSSTATUS task attribute controls whether a process inherits MCS status,
TASKING status and/or locked program status.
MCS status confers special privileges and priority, which are discussed in the Task
Management Programming Guide.
The INHERITMCSSTATUS task attribute, if TRUE, enables a process to inherit the
privileges and priority category of an MCS. If the initiating process is not an MCS, then
the INHERITMCSSTATUS task attribute can only be used to remove TASKING and/or
locked program status from the process.
Use INHERITMCSSTATUS to control TASKING status and locked program status of an
internal offspring. If set to FALSE, TASKING status and locked program status are not
inherited. Refer to the Task Management Programming Guide for more information about
tasking status. For information about locked program status, refer to the LOCKED option
of the MP command in the System Commands Operations Reference Manual.
Note: Although tasking programs have many of the same privileges as an MCS, the
INHERITMCSSTATUS task attribute cannot be used to cause tasking status to be
inherited.
4–54
8600 0502–407
INHERITMCSSTATUS
Range
When the INHERITMCSSTATUS attribute is written, the value range is TRUE or FALSE.
Other bits in the value are ignored. When the INHERITMCSSTATUS attribute is read, the
value returned contains the following additional information:
Field
Name
Value
Meaning
[47:01]
MCS Status
0
Task does not have MCS status.
1
Task has MCS status.
[46:07]
MCS Number
[39:39]
Not used
[00:01]
InheritMCSStatus
The MCS number of the task if the task has
MCS status.
0
Task does not inherit MCS status, Tasking
Status, or Locked Program status from
parent process.
1
Task inherits MCS status from parent
process.
Default
INHERITMCSSTATUS defaults to FALSE for most processes. However, the
INHERITMCSSTATUS task attribute defaults to TRUE for internal processes initiated by
an MCS.
Read Time, Write Time, and Overwrite Rules
The INHERITMCSSTATUS of a task variable can be read or written at any time, but only
by the following types of programs:
•
Host Services system software
•
Libraries with a nonzero linkage class
•
Programs marked with one or more of the following types of security status:
compiler status, MCS status, privileged status, or tasking status. (Note that it is the
object code file, rather than the process usercode, that must have the special
security status.)
For information about linkage classes and about the various types of security status,
refer to the Task Management Programming Guide.
Although you can assign INHERITMCSSTATUS to object code files, such assignments
are ignored when the program is initiated.
Similarly, although you can assign INHERITMCSSTATUS through task equations in
CANDE and MARC, such assignments have no effect. INHERITMCSSTATUS task
equations in WFL result in the run-time error or warning “INHERITMCSSTATUS
ATTRIBUTE –RESTRICTED ACCESS”, which is described later under this heading.
8600 0502–407
4–55
INHERITMCSSTATUS
Run-Time Error
INHERITMCSSTATUS ATTRIBUTE – RESTRICTED ACCESS
A program lacking the necessary code file privileges attempted to access the
INHERITMCSSTATUS task attribute. The accessing process, if nonprivileged, is
discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 128 (RESTRICTEDACCESSV).
4–56
8600 0502–407
INITPBITCOUNT
INITPBITCOUNT
Type
Real
Units
Presence-bit operations
Range
Default
0 to about 4.31E+68
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
104
Synonym
None
Restrictions
None
Explanation
The INITPBITCOUNT task attribute returns the number of initial presence-bit interrupts
that have been performed for the process since its initiation.
For information about initial presence-bit operations, refer to the discussion of controlling
process memory usage in the Task Management Programming Guide.
8600 0502–407
4–57
INITPBITTIME
INITPBITTIME
Type
Real
Units
See below
Range
Default
0 to about 4.31E+68
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
105
Synonym
None
Restrictions
None
Explanation
The INITPBITTIME task attribute returns the total time spent processing initial presencebit interrupts for this process.
For information about initial presence-bit operations, refer to the discussion of controlling
process memory usage in the Task Management Programming Guide.
Units
In WFL, this value is returned in units of seconds. In all other languages, this value is
returned in units of 2.4 microseconds.
4–58
8600 0502–407
ITINERARY
ITINERARY
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Never
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
None (read-only)
Supported
72
Synonym
None
Restrictions
None
Range
ÚêÄÄÄÄÄÄ , ÄÄÄÄÄ¿
ÄÄÁÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
Explanation
The ITINERARY task attribute contains a record of the remote hosts where ancestors of
this process were initiated. The leftmost entry in the string is the hostname of the most
recent remote ancestor of the process. The next entry in the string is the hostname of
the host where the next most recent remote ancestor was initiated, and so forth.
The default value of null indicates that the process has no remote ancestors.
Inheritance
This attribute is inherited verbatim from parent to offspring when the parent and
offspring are running on the same host. When the parent and offspring are on different
hosts, the offspring inherits the parent's ITINERARY value with an added entry at the left
that records the host where the parent is running.
8600 0502–407
4–59
ITINERARY
Examples
The contents of the ITINERARY attribute for four related processes are shown in the
following table:
Process
ITINERARY Value of Process
A
“.”
B
“BLUE.”
C
“BLUE.”
D
“YELLOW, BLUE.”
The relationship of the processes is as follows:
4–60
•
Job A starts on host BLUE.
•
Job A initiates task B on host YELLOW.
•
Task B initiates task C on host YELLOW.
•
Task C initiates task D on host RED. Note that RED does not appear in the
ITINERARY value for D because the ITINERARY reflects only the ancestors of D.
8600 0502–407
JOBNUMBER
JOBNUMBER
Type
Integer
Units
Not applicable
Range
100 to 65,535
Default
See below
Read Time
Anytime
Write Time
See below
Inheritance
See below
Fork() Inheritance
Overwrite rules
Host Services
Attribute Number
Value of MIXNUMBER
See “Write Time” below
Supported
41
Synonym
None
Restrictions
None
Explanation
For a task, the JOBNUMBER task attribute records the mix number of the job that owns
the task. For a job, the JOBNUMBER task attribute value records the job's own mix
number. The mix number is a number that uniquely identifies a process and which the
system assigns to the process at initiation. A process can read the mix number by using
the MIXNUMBER task attribute.
For further information about mix numbers and relationships between jobs and tasks,
refer to the Task Management Programming Guide.
Default and Inheritance
The JOBNUMBER value is 0 before initiation. At initiation, a job is automatically assigned
a JOBNUMBER value by the system. When you initiate a task from a MARC or CANDE
session, the task receives a JOBNUMBER value equal to the session number. All other
tasks inherit the JOBNUMBER value of their parents, unless the BDBASE bit is set in the
process's OPTION task attribute. In this case, the JOBNUMBER of the process is set to
the process's mix number.
Range
For tasks initiated from a MARC or CANDE session, the JOBNUMBER value equals the
session number and can range from 100 up to 65,535.
Tasks not initiated from MARC or CANDE inherit the JOBNUMBER value of their
parents, unless the BDBASE bit is set in the OPTION task attribute of the process. In
this case, the JOBNUMBER of the process is set to the mix number of the process. For
8600 0502–407
4–61
JOBNUMBER
these processes, the JOBNUMBER value equals the MIXNUMBER value of MYJOB and
is in the range from 100 up to 65,535.
Write Time
Only a tasking program, MCS, or other system software can effectively assign the
JOBNUMBER value.
WFL MODIFY statements can assign a JOBNUMBER value to an object code file, but
the JOBNUMBER is overridden by the system at initiation time. Similarly, CANDE
permits you to specify JOBNUMBER in task equations, but the system overrides the
JOBNUMBER value at task initiation time.
Run-Time Errors
The following errors are fatal unless the accessing process is privileged.
JOBNUMBER ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign JOBNUMBER a value less than 0 or greater than 65,535.
The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
JOBNUMBER ATTRIBUTE IS READONLY ON ACTIVE TASK
An attempt was made to assign a JOBNUMBER value to an in-use process. The
accessing process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYONACTIVEV).
JOBNUMBER ATTRIBUTE MAY ONLY BE SET BY AN MCS OR TASKING
PROGRAM
A process that was not an MCS or tasking program attempted to assign a value to
JOBNUMBER. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 54
(ONLYMCSTASKINGV).
JOBNUMBER ATTRIBUTE – RESTRICTED ACCESS
A WFL job attempted to task-equate the JOBNUMBER attribute of a task. The WFL job,
if nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 128 (RESTRICTEDACCESSV).
JOBNUMBER IS NOT A SESSIONNUMBER
An attempt was made to assign JOBNUMBER a value that was not a session number.
The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 11 (NOTSESSIONNUMBERV).
4–62
8600 0502–407
JOBSUMMARY
JOBSUMMARY
Type
Mnemonic
Units
Not applicable
Range
Default
See “Explanation” below
DEFAULT
Read Time
Anytime
Write Time
Anytime
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Inherited from parent if
DEPTASKACCOUNTING = IDENTIFIED;
otherwise, no job file is created.
Standard
Supported
81
Synonym
None
Restrictions
None
Explanation
The JOBSUMMARY task attribute of a job determines whether the job produces a job
summary printout. The following are the possible values and their meanings:
Mnemonic Value
Integer
Value
DEFAULT
0
If the NOSUMMARY option of the OPTION task attribute
is set, then the effects are the same as if JOBSUMMARY
had a value of CONDITIONAL. If NOSUMMARY is not
set, job summary printing is controlled by the
JOBSUMMARY option of the PS DEFAULT system
command. This PS DEFAULT JOBSUMMARY option can
specify a value of CONDITIONAL, SUPPRESSED,
UNCONDITIONAL, or ABORTONLY. These values have
the same effects as the corresponding JOBSUMMARY
task attribute values.
CONDITIONAL
1
The job summary is printed only if one of the following
conditions occurs: backup files are produced, the job
terminates abnormally, or a descendant compilation
encounters a syntax error.
8600 0502–407
Meaning
4–63
JOBSUMMARY
Mnemonic Value
Integer
Value
SUPPRESSED
2
Meaning
The job summary is suppressed, except in the following
circumstances:
•
The job is submitted from an ODT and has WFL
syntax errors.
•
The job is discontinued because of a job queue
conflict, such as requesting a nonexistent job queue,
or specifying job attributes that conflict with job
queue attributes.
Any backup files associated with the job are printed,
regardless of whether the job summary prints or not.
UNCONDITIONAL
3
The job summary is printed, regardless of how the job
terminates or whether there are backup files.
ABORTONLY
4
The job summary is printed only if the job or one of its
descendants terminates abnormally.
The JOBSUMMARY value is not used until the job terminates. If JOBSUMMARY is
assigned more than once for an in-use job, only the last assignment before job
termination has effect.
When a task initiated through a CANDE or MARC RUN command attempts to access its
own JOBSUMMARY value, the system actually accesses the JOBSUMMARY value for
the session. In other words, for a task initiated by the RUN command from a session,
MYSELF.JOBSUMMARY is interpreted as MYJOB.JOBSUMMARY. Any assignments
made by the offspring actually affect the job summary for the session.
Similarly, for WFL statements submitted through a CANDE or MARC WFL command,
MYJOB(JOBSUMMARY) affects the job summary of the session. However, in such WFL
statements, MYSELF(JOBSUMMARY) has no effect on the job summary of the session.
In MARC, you can also assign the JOBSUMMARY value for a session by using the
MARC JOBSUMMARY command.
A task initiated from a job can read or modify its own JOBSUMMARY value. However,
for a task, the JOBSUMMARY value has no effect, because a task has no job summary.
The JOBSUMMARY value of the task's job determines whether a job summary is
produced.
4–64
8600 0502–407
JOBSUMMARY
Using DESTNAME with JOBSUMMARY
The DESTNAME task attribute exists only to support legacy printing applications through
message control systems (MCSs). DESTNAME cannot be used to generate print
requests. However, if DESTNAME is specified to deliver job summaries, the following
rules apply:
•
The JOBSUMMARY task attribute determines whether a job summary is printed by
the Print System and whether one is created for an MCS to print.
•
A job summary file is created for each service (Print System or MCS) for which
printed output is generated. You can control the name of the job summary file
created for the Print System with the JOBSUMMARYTITLE task attribute.
•
If no printed output is created and the JOBSUMMARY task attribute is specified, a
job summary is created for the Print System. If no printed output is created and the
DESTNAME task attribute is specified, a job summary is created for an MCS. If both
the DESTNAME and JOBSUMMARYTITLE attributes are set, two files are created.
Whether the Print System job summary is printed depends on the setting of the
JOBSUMMARY task attribute.
For information on the DESTNAME task attribute, refer to Section 3 in this manual.
Run-Time Error
JOBSUMMARY ATTRIBUTE INCORRECT SYNTAX
An attempt was made to set JOBSUMMARY to a value less than 0 or greater than 3.
The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
8600 0502–407
4–65
JOBSUMMARYTITLE
JOBSUMMARYTITLE
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Anytime
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Inherited from parent if
DEPTASKACCOUNTING = IDENTIFIED;
otherwise, set to null string
Standard
Not supported
97
Synonym
None
Restrictions
None
Explanation
The JOBSUMMARYTITLE task attribute specifies a title under which the job summary
file should be saved.
If JOBSUMMARYTITLE is null when the job terminates, then a job summary file is
created only if a job summary is to be printed. The job summary file is titled according to
default conventions and is removed immediately after printing.
If the JOBSUMMARYTITLE value has a nonnull value when the job terminates, then the
system creates a permanent job summary file with the value of JOBSUMMARYTITLE as
its title. The job summary file is created even if no job summary is to be printed.
However, even if a job summary is printed, the job summary file is preserved for possible
later use.
If the JOBSUMMARYTITLE value includes an ON part, then the file is
created on the specified family. Otherwise, the location of the job summary file is
determined by the rules discussed for printer backup file media in the Task Management
Programming Guide.
If a statement assigns JOBSUMMARYTITLE a value that does not include a usercode,
then the system automatically prefixes the new JOBSUMMARYTITLE value with the
usercode under which the job was initiated.
4–66
8600 0502–407
JOBSUMMARYTITLE
Note: If the usercode of the job changes after initiation, and the job then assigns
JOBSUMMARYTITLE a value that does not include a usercode, the system prefixes
JOBSUMMARYTITLE with the original usercode of the job. If you want the job summary
file to be created under the new usercode of the job, you must explicitly specify the
desired usercode in the JOBSUMMARYTITLE assignment.
Only a privileged process can assign JOBSUMMARYTITLE a usercode different from the
usercode of the process. If a nonprivileged process assigns a usercode to
JOBSUMMARYTITLE, the usercode must match the usercode of the process and the
usercode of the job of the process. A nonprivileged process running without a usercode
cannot assign a usercode to JOBSUMMARYTITLE.
The JOBSUMMARYTITLE attribute has meaning only for jobs and BDBASE tasks.
Whenever a task reads its own JOBSUMMARYTITLE value, a null value is returned. If a
task assigns a value to its JOBSUMMARYTITLE value, then no error results but the value
remains null. The JOBSUMMARYTITLE for a job is accessed with the MYJOB task
variable. The JOBSUMMARYTITLE attribute for a BDBASE task is accessed with the
MYSELF task variable.
When a task initiated from a CANDE or MARC session attempts to access its own
JOBSUMMARYTITLE value, the system actually accesses the JOBSUMMARYTITLE
value for the session. In other words, for a task initiated from a session,
MYSELF.JOBSUMMARYTITLE is interpreted as MYJOB.JOBSUMMARYTITLE. Any
assignments made by the offspring actually affect the job summary for the session. In
MARC, you can also assign the JOBSUMMARYTITLE for a session by using the MARC
JOBSUMMARYTITLE command.
The JOBSUMMARYTITLE value has no effect on the printing of the job summary. For
information about controlling job summary printing, and general information about job
summaries, refer to the Task Management Programming Guide.
Using DESTNAME with JOBSUMMARYTITLE
The DESTNAME task attribute exists only to support legacy printing applications through
message control systems (MCSs). DESTNAME cannot be used to generate print
requests. However, if DESTNAME is specified to deliver job summaries, the following
rules apply:
•
The JOBSUMMARY task attribute determines whether a job summary is printed by
the Print System and whether one is created for an MCS to print.
•
A job summary file is created for each service (Print System or MCS) for which
printed output is generated. You can control the name of the job summary file
created for the Print System with the JOBSUMMARYTITLE task attribute.
•
If no printed output is created and the JOBSUMMARY task attribute is specified, a
job summary is created for the Print System. If no printed output is created and the
DESTNAME task attribute is specified, a job summary is created for an MCS. If both
the DESTNAME and JOBSUMMARYTITLE attributes are set, two files are created.
Whether the Print System job summary is printed depends on the setting of the
JOBSUMMARY task attribute.
For information on the DESTNAME task attribute, refer to Section 3 in this manual.
8600 0502–407
4–67
JOBSUMMARYTITLE
Run-Time Errors
JOBSUMMARYTITLE TASK ATTRIBUTE INCORRECT SYNTAX
A process attempted to assign JOBSUMMARYTITLE a value that does not conform to
the syntax of a title. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
SECURITY VIOLATION
A nonprivileged process attempted to assign JOBSUMMARYTITLE a usercode that is not
allowed for that process. The assigning process is discontinued with HISTORYCAUSE =
2 (PROGRAMCAUSEV) and HISTORYREASON = 29 (SECURITYERRORV). The message
“INVALID TASK ATTRIBUTE: JOBSUMMARYTITLE” is written in the log.
TASK ATTRIBUTE ACCESS FAULT
A disk error resulted from an attempt to read or assign the JOBSUMMARYTITLE of a
process. The reading or assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 132
(ATTACCESSFAULTV).
4–68
8600 0502–407
Section 5
Task Attributes L through R
This section contains task attributes starting with the letters L through R.
8600 0502–407
5–1
LABELFORMAT
LABELFORMAT
Type
Mnemonic
Units
Not applicable
Range
Default
UNSPECIFIED, ANSI69, ANSI87
UNSPECIFIED
Read Time
Anytime
Write Time
Anytime
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Code file dominant
Supported
126
Synonym
None
Restrictions
None
Explanation
The LABELFORMAT task attribute defines the format of the tape label for the first file
created on a tape
Once the first file on a multifile tape is created, the label format for that tape never
changes. The same label format is used for all later files added to a multifile tape, even if
the LABELFORMAT value changes before the later files are opened. If a reel switch is
performed, all subsequent reels use the same label format as the first file on the first
reel.
5–2
8600 0502–407
LABELFORMAT
The LABELFORMAT task attribute has three possible values, as follows:
Mnemonic
Value
Integer
Value
UNSPECIFIED
0
Meaning
Generally defaults to the value of the LABELFORMAT system
option. The LABELFORMAT system option is controlled through
the SYSOPS (System Options) system command; the default
value is ANSI69DEFAULT.
The system ignores the LABELFORMAT system option and
automatically enforces ANSI87 format if the tape drive is
compression-capable and either of the following conditions is
true:
•
The COMPRESSIONCONTROL file attribute has a value of
SYSTEM and the tape has been purged with the
COMPRESSION option.
•
The COMPRESSIONCONTROL file attribute has a value of
USER and the COMPRESSIONREQUESTED file attribute is
TRUE.
ANSI69
1
Complies with ANSI X3.27 1969 standard. This value overrides
the LABELFORMAT system option.
ANSI87
2
Complies with ANSI X3.27 1987 standard. This value overrides
the LABELFORMAT system option.
Note: The system ignores the LABELFORMAT task attribute and automatically
enforces the ANSI87 format for the first file on the tape if all the following conditions are
true:
•
The Secure Accountability Facility is activated.
•
The TAPECHECK security option is set to AUTOMATIC. This option is controlled by
the SECOPT (Security Options) system command.
•
The SECURITYLABELS volume attribute for the tape has a value of TRUE. If the
LABELFORMAT value is ANSI69 and the system enforces a value of ANSI87, the
system issues the warning message “SECURITYLABELS REQUIRE ANSI87 LABELS
BUT OPTION ISN'T SET”.
For illustrations of the standard tape label formats supplied by the system software, refer
to the I/O Subsystem Programming Guide.
8600 0502–407
5–3
LANGUAGE
LANGUAGE
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
95
Synonym
None
Restrictions
None
Range
ÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
³ ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÀÄÁÄ/16\ÄÂÄÄÂÄÁÄÙ
ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
Explanation
The LANGUAGE task attribute is used by the MultiLingual System (MLS) to determine
the language of output messages displayed by a process. The LANGUAGE value affects
all messages displayed for the process by the system, including BOT, EOT, and RSVP
messages. The LANGUAGE value also establishes a default language to be applied to
any MESSAGESEARCHER statements executed by ALGOL programs.
You should be especially careful not to misspell the LANGUAGE value, because the
system does not notify you of any spelling errors. The system accepts any combination
of letters and digits that conforms to the language identifier syntax. If the LANGUAGE
value does not correspond to any language that is available on the system, the process
messages are displayed in the system default language.
Refer to the Unisys e-@ction ClearPath Enterprise Servers MultiLingual System
Administration, Operations, and Programming Guide for information about MLS.
5–4
8600 0502–407
LANGUAGE
Default and Inheritance
A process inherits the LANGUAGE value of its parent.
The default value of LANGUAGE is ENGLISH. A different default can be established for
the whole system by using the LANGUAGE option of the SYSOPS (System Options)
system command.
The system administrator can associate a language with a usercode by including a
LANGUAGE usercode attribute in the usercode definition in the USERDATAFILE. This
language value does not directly affect processes, but it is inherited by MARC or CANDE
sessions with that usercode. You can also change the language of a session after log-on
by using the MARC or CANDE LANGUAGE command. Processes initiated from the
session inherit the current language of the session.
The LANGUAGE attribute of a usercode is also inherited by WFL jobs that are assigned
that usercode in the job attribute list. However, if the job attribute list also contains a
PRINTDEFAULTS assignment, the PRINTDEFAULTS attribute of the usercode is ignored.
Run-Time Errors
LANGUAGE ATTRIBUTE INCORRECT SYNTAX
An attempt was made to assign a LANGUAGE value that did not conform to the
language identifier syntax. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
TOO MANY LANGUAGES IN USE BY SYSTEM
An attempt was made to assign a language value that would bring the total number of
languages in use on the system to greater than 256. The assigning process, if
nonprivileged, is discontinued with HISTORYCAUSE = 2 (PROGRAMCAUSEV) and
HISTORYREASON = 99 (FOREIGNTASKINITFAILV).
8600 0502–407
5–5
LIBRARY
LIBRARY
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
See below
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
See below
Not supported
74
Synonym
None
Restrictions
None
Range
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
³
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ , ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³
ÄÄÁÄ LIBRARY ÄÁÄÄÄÄÁÄÁÄÄÄÄ´
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ , ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÄÄ ( ÄÁÄÄÄ = ÄÄÄÁÄ ) ÄÄÄÄÄÄ´
For a list of possible library attributes and their values, refer to the Task Management
Programming Guide
Explanation
The LIBRARY task attribute assigns library attributes to a client library or connection
library declared by the process. The LIBRARY task attribute overrides any conflicting
assignments in the library declaration.
One typical use of this attribute is to cause a client library to link to a different server
library than it otherwise would. The server library to be used can be specified through
assignments to the client library attributes LIBACCESS, FUNCTIONNAME, and TITLE.
5–6
8600 0502–407
LIBRARY
Another use of the LIBRARY task attribute is to pass a parameter to a library through the
LIBPARAMETER library attribute.
You can also use the LIBRARY task attribute to cause a connection library to link to a
different matching connection library than it otherwise would.
The internal name specified in the LIBRARY value should equal the value of the
INTNAME library attribute. If the INTNAME attribute was not explicitly assigned a value,
then the INTNAME value defaults to the name of the identifier used in the library
declaration.
LIBRARY can be assigned either before or during process execution. A given LIBRARY
assignment has no affect on libraries that the process has already referenced at the time
the LIBRARY assignment is made.
Read Time
The LIBRARY task attribute can be read at any time from ALGOL. However, the value
returned is encoded in an internal form that does not resemble the original LIBRARY
assignments. The LIBRARY task attribute returns a null value if read from COBOL and
cannot be read from WFL at all.
Inheritance
Internal processes inherit the LIBRARY value of the parent.
Overwrite Rules
In ALGOL or COBOL, if the LIBRARY attribute of a task variable is assigned more than
once, each assignment is merged with the previous value of the LIBRARY attribute. A
library attribute assignment in the existing value is overwritten only in the following
cases:
•
If the new assignment specifies a different value for the same attribute of the same
library.
•
If a null string is assigned to LIBRARY. In this case, the LIBRARY value is restored to
null.
In WFL, a LIBRARY assignment is merged with the existing LIBRARY value if the
assignment includes an asterisk or if the library internal name is a string primary. If no
asterisk is included, and the library internal name is a name constant, then the previous
LIBRARY value is discarded.
When a process is initiated, the LIBRARY values assigned through assignments to the
task variable, object code file assignments, and inheritance from the parent are merged
into a single LIBRARY value. If these sources assign conflicting values to the same
library attribute of the same library, then standard overwrite rules determine which library
attribute assignment takes precedence.
8600 0502–407
5–7
LIBRARY
Examples
The following is an example of a LIBRARY assignment in CANDE and in WFL:
RUN OBJECT/DAILY/UPDATE;
LIBRARY UPDATER (LIBACCESS=BYTITLE, TITLE=OBJECT/UPDATE/MODS);
LIBRARY GENROUTINES (TITLE=OBJECT/GENROUTINES/TESTVERSION);
The following is an example of a LIBRARY assignment in ALGOL:
REPLACE T.LIBRARY BY
"LIBRARY L (LIBACCESS = BYFUNCTION,FUNCTIONNAME=MYSUPPORT);"
"LIBRARY GENROUTINES (TITLE=OBJECT/GENROUTINES/TEST);" 48"00";
The following ALGOL statement resets the LIBRARY value to a null string:
REPLACE T.LIBRARY BY 48"00";
The following COBOL74 or COBOL85 statements assign attributes to two libraries. Both
assignments are made to the same task variable, TASK-VAR-1. The second assignment
does not overwrite the first assignment, but rather is merged with it:
CHANGE ATTRIBUTE LIBRARY OF TASK-VAR-1 TO
"LIBRARY L (LIBACCESS=BYFUNCTION,FUNCTIONNAME=""MYSUPPORT"");".
CHANGE ATTRIBUTE LIBRARY OF TASK-VAR-1 TO
"LIBRARY UPDATER (LIBACCESS = BYFUNCTION);".
Run-Time Error
LIBRARY ATTRIBUTE INCORRECT SYNTAX
There were one or more syntax errors in the library attribute assignments in the
LIBRARY value. The assigning process, if nonprivileged, is discontinued with
HISTORYCAUSE = 2 (PROGRAMCAUSEV) and HISTORYREASON = 131
(INCORRECTSYNTAXV).
5–8
8600 0502–407
LIBRARYSTATE
LIBRARYSTATE
Type
Real
Units
Not applicable
Range
Default
See “Explanation” below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
None (read-only)
Not supported
108
Synonym
None
Restrictions
None
Explanation
The LIBRARYSTATE task attribute records several types of information about the
properties of a library process. The LIBRARYSTATE value is divided into the following
fields:
Field
Name
Value
[35:01]
CL Call
0
Not initiated by connection library linkage
1
Initiated by connection library linkage
0
Private
1
Shared by run unit
4
Shared by all
0
Temporary (The library goes away after the last
client delinks.)
1
Permanent (The library remains until thawed and the
last client is delinked or the library is DSed.)
[30:03]
[27:01]
Sharing
Permanent
Note: If a permanent or freeze control library is being
thawed or DSed, the exception event for the task will be
caused on a transition from permanent to temporary with no
users.
[26:01]
8600 0502–407
Trusted
0
LINKCLASS is applied to all exported objects
1
Exported objects can each have a LINKCLASS
different from the overall process LINKCLASS
5–9
LIBRARYSTATE
Field
Name
Value
[25:02]
Access
0
Initiated by title
1
Initiated by function
Note: Values for this field can be monitored by a parent
task or used while in a freeze control procedure. (For
example, this could be done to determine the method used
by the initiator of the library where initiation by title is not
acceptable and the library could then be discontinued.) In
addition, the value can change from 0 to 1 if a library was
originally initiated by title, but is later accessed by function.
[19:04]
Security
Contains the value of LINKCLASS. See the description of
security considerations for libraries in the Task Management
Programming Guide for a description of these values.
[02:01]
Nonresumable
1
Library is not resumable
[01:01]
Frozen
1
Frozen library
[00:01]
Library Call
0
Not initiated as a library (for example, a program that was
run)
1
Frozen server library process or initiated by the library
linkage mechanism. The library linkage mechanism
initiates a library program if a process attempts to import
an object from a server library or connection library and
an instance of the library does not already exist.
Note: This field is useful for programs designed to run in
either of two ways, as an ordinary process or a frozen server
library process. The process reads this field value to
determine if it was initiated by the library mechanism; if so,
the process executes a FREEZE statement and becomes a
frozen server library process. If the process was not initiated
by the library linkage mechanism, it can skip the FREEZE
statement and take other actions.
Example
An ALGOL program can use a statement such as the following to determine if it was
invoked as a library and take appropriate action:
IF BOOLEAN(MYSELF.LIBRARYSTATE)
THEN FREEZE(TEMPORARY)
ELSE NONLIBACTOR;
This IF statement freezes the process as a server library if the process was invoked as a
library. Otherwise, it calls a procedure named NONLIBACTOR, which is declared
elsewhere in the program.
5–10
8600 0502–407
LIBRARYUSERS
LIBRARYUSERS
Type
Integer
Units
Linked processes
Range
Default
See below
0
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
None (read-only)
Not supported
101
Synonym
None
Restrictions
None
Explanation
For server library processes, the LIBRARYUSERS task attribute returns the number of
client processes or connection libraries that are currently linked to this server library.
If the same process links to the server library through two or more library declarations,
the LIBRARYUSERS value counts each declaration as a separate client.
If the process is a server library with a permanent or control freeze, then when the
LIBRARYUSERS value changes to zero, the system causes the exception event of the
process.
If LIBRARYUSERS is read for a process that is not a server library, it returns a zero.
The LIBRARYUSERS value does not reflect the users of any connection libraries declared
by the process.
Range
The value of LIBRARYUSERS is roughly limited to the number of stacks that a given
system is capable of running. This number is anywhere from about 1000 to more than
32000, depending on the model you are using.
8600 0502–407
5–11
LOCKED
LOCKED
Type
Boolean
Units
Not applicable
Range
TRUE, FALSE
Default
FALSE
Read Time
Anytime
Write Time
Anytime
Inheritance
None
Fork() Inheritance
None
Host Services
Attribute Number
Synonym
Not supported
17
None
Explanation
The LOCKED task attribute provides a means to regulate the timing of two or more
processes that access a shared object.
If LOCKED has a value of FALSE, then any process can change the value to TRUE and
continue normally. However, if LOCKED has a value of TRUE, then any process that
attempts to set LOCKED to TRUE stops executing until some other process sets the
value of LOCKED to FALSE. If more than one process is waiting to set LOCKED to
TRUE, then when another process sets LOCKED to FALSE, one of the waiting
processes sets LOCKED back to TRUE and resumes execution. The programmer cannot
predict which of the waiting processes resumes execution first. However, the highest
priority process has the best chance. The other waiting processes continue to wait until
the next time a process sets LOCKED to FALSE.
Implicitly, the LOCKED attribute functions by accessing the available state of a
predeclared event. This attribute is used mainly in WFL jobs because they cannot access
events directly. For a detailed discussion of events, refer to the Task Management
Programming Guide.
5–12
8600 0502–407
MAXCARDS
MAXCARDS
Type
Integer
Units
Punch cards
Range
Default
0 to 549755813887
0 (unlimited)
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
39
Synonym
None
Restrictions
None
Explanation
The MAXCARDS task attribute was previously used to limit the number of cards
punched by a process. This task attribute is no longer used for that purpose.
MAXCARDS stores any integer value assigned to it by a user. The value of this attribute
has no effect on the process nor does it report any information. Rather, the value is
used for communicating information between processes. Any value stored into a
program is inherited in the program’s offspring.
Range
If a value less than 0 is assigned, the value is changed to 0. If a value greater than the
maximum value is assigned, the value is changed to the maximum value,
549755813887.
Inheritance
A process inherits the MAXCARDS value of its parent.
8600 0502–407
5–13
MAXIOTIME
MAXIOTIME
Type
Real
Units
Seconds
Range
Default
0 through about 1319400 (15 days,
6 hours, 30 minutes)
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
Synonym
Restrictions
5
IOTIME
None
Explanation
The MAXIOTIME task attribute specifies the maximum amount of I/O time that a
process can use. When the ACCUMIOTIME task attribute reaches the same value as the
MAXIOTIME task attribute, the process is discontinued.
When a task terminates, the system decrements the MAXIOTIME value of the task's
parent by the amount of I/O time recorded by the ACCUMIOTIME attribute of the task.
Refer to the ACCUMIOTIME description for details.
Default
If the MAXIOTIME task attribute is not inherited and the value is not explicitly set, then
its value is 0 (zero) and it is treated as unlimited. However, if the value is explicitly set to
0 (zero), it is treated as a limit.
If an attempt is made to assign a negative value to the MAXIOTIME attribute, the default
value of 0 (zero) is assigned.
If MAXIOTIME is accessed through Host Services, bit 47 will always be 0 (zero).
5–14
8600 0502–407
MAXIOTIME
Inheritance
A process inherits the MAXIOTIME value of its parent.
If a job queue has a default value for the IOTIME queue attribute, then that value is
inherited by the MAXIOTIME task attribute of WFL jobs run from that queue.
If a job queue has a limit value for the IOTIME queue attribute, then WFL jobs that
specify a higher MAXIOTIME value in the job attribute list cannot be accepted into that
job queue.
Overwrite Rules
Standard overwrite rules apply, with the following exceptions:
•
When a task is initiated, the MAXIOTIME value is the minimum of the value inherited
from the parent and any value resulting from standard overwrite rules.
•
For MAXIOTIME assignments to an in-use process, the maximum value that can
result is the job's current MAXIOTIME value, minus the amount of I/O time the
process has already used. Attempts to assign a higher value result in this maximum
value being assigned. No error or warning is issued.
Run-Time Errors
EXC I/O TIME
The process used more I/O time than is allowed by the MAXIOTIME task attribute. The
process is discontinued with HISTORYCAUSE = 3 (RESOURCECAUSEV) and
HISTORYREASON = 1 (IOEXCEEDEDV).
MAXIOTIME ILLEGAL ATTRIBUTE VALUE - TOO LARGE
A process attempted to assign MAXIOTIME a value greater than the maximum. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 135 (VALUETOOLARGEV).
8600 0502–407
5–15
MAXLINES
MAXLINES
Type
Integer
Units
Lines printed
Range
Default
0 to 274877906943
0 (unlimited)
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
Synonym
Restrictions
40
PRINTLIMIT
None
Explanation
The MAXLINES task attribute specifies the maximum number of lines that can be printed
by a process and its descendants. If a process and its descendants attempt to print more
lines than are allowed by this attribute, the process is discontinued.
The PRINTCOPIES and DESTINATION file attributes are not considered when
determining the number of print lines a process has created. The system uses two
different, complementary methods to keep track of the number of lines that have been
printed by a parent process and its descendants.
1. For each process, the system maintains a print count that records the total number
of lines that have been printed for all the printer files declared by that process. (This
print count is stored internally and is not visible to the user.) The system updates
this print count whenever the process or any of its descendants writes to a print file
declared by the process. The system discontinues the process if the print count
reaches a value greater than MAXLINES.
2. If a task declares a print file and then writes to it, the system does not update the
print count for the parent of the task. However, when the task terminates, the
system subtracts the task's print count from the parent's MAXLINES value and
updates the parent's MAXLINES value accordingly. The system discontinues the
parent if the new MAXLINES value is lower than the parent's print count.
Range
If a value less than 0 is assigned, the value is changed to 0. If a value greater than
274877906943 is assigned, the value is changed to 274877906943.
5–16
8600 0502–407
MAXLINES
Inheritance
A process inherits its parent's MAXLINES value if the parent's MAXLINES value is not
unlimited.
If a job queue has a default value for the LINES queue attribute, then that value is
inherited by the MAXLINES task attribute of WFL jobs run from that queue.
If a job queue has a limit value for the LINES queue attribute, then WFL jobs that specify
a higher MAXLINES value in the job attribute list cannot be accepted into that job queue.
Overwrite Rules
Standard overwrite rules apply, with the following exceptions:
•
When a task is initiated, the MAXLINES value is the minimum of the value inherited
from the parent and any value resulting from standard overwrite rules.
•
For MAXLINES assignments to an in-use process, the maximum value that can
result is the job's current MAXLINES value, minus the number of lines the in-use
process has already written. Attempts to assign a higher value result in this
maximum value being assigned. No error or warning is issued.
Run-Time Error
PRINT LIMIT EXCEEDED
The process attempted to print more lines than were allowed by the MAXLINES value.
The process is discontinued with HISTORYCAUSE = 3 (RESOURCECAUSEV) and
HISTORYREASON = 3 (PRINTEXCEEDEDV).
8600 0502–407
5–17
MAXPROCTIME
MAXPROCTIME
Type
Real
Units
Seconds
Range
Default
0 through about 1319400 (15 days, 6
hours, 30 minutes)
See below
Read Time
Anytime
Write Time
Anytime
Inheritance
See below
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
4
Synonym
None
Restrictions
None
Explanation
The MAXPROCTIME task attribute specifies the maximum amount of processor time
that can be used by a process. If the ACCUMPROCTIME task attribute value reaches the
same value as MAXPROCTIME, the process is discontinued.
When a task terminates, the system decrements the MAXPROCTIME value of the task's
parent by the amount of processor time recorded by the ACCUMPROCTIME attribute of
the task. Refer to the ACCUMPROCTIME description for details.
Default
If the MAXPROCTIME attribute is not inherited and the value is not explicitly set, then its
value is zero and it is treated as unlimited. However, if the value is explicitly set to zero,
it is treated as a limit.
If an attempt is made to assign a negative value to the MAXPROCTIME attribute, the
default value of zero is assigned.
If MAXPROCTIME is accessed through Host Services, bit 47 will always be zero.
5–18
8600 0502–407
MAXPROCTIME
Inheritance
A process inherits its parent's MAXPROCTIME value if the parent's MAXPROCTIME
value is not unlimited.
If a job queue has a default value for the PROCESSTIME queue attribute, then that value
is inherited by the MAXPROCTIME task attribute of WFL jobs run from that queue.
If a job queue has a limit value for the PROCESSTIME queue attribute, then WFL jobs
that specify a higher MAXPROCTIME value in the job attribute list cannot be accepted
into that job queue.
Overwrite Rules
Standard overwrite rules apply, with the following exceptions:
•
When a task is initiated, the MAXPROCTIME value is the minimum of the value
inherited from the parent and any value resulting from standard overwrite rules.
•
For MAXPROCTIME assignments to an in-use process, the maximum value that can
result is the job's current MAXPROCTIME value, minus the amount of processor
time the process has already used. Attempts to assign a higher value result in this
maximum value being assigned. No error or warning is issued.
Run-Time Errors
EXC PROC TIME
The process used more processor time than is allowed by the MAXPROCTIME task
attribute. The process is discontinued with HISTORYCAUSE = 3 (RESOURCECAUSEV)
and HISTORYREASON = 0 (PROCESSEXCEEDEDV).
MAXPROCTIME ILLEGAL ATTRIBUTE VALUE - TOO LARGE
A process attempted to assign MAXPROCTIME a value greater than the maximum. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 135 (VALUETOOLARGEV).
8600 0502–407
5–19
MAXWAIT
MAXWAIT
Type
Real
Units
Seconds
Range
Default
0 to about 1319400 (15 days, 6 hours, 30
minutes)
0 (Unlimited)
Read Time
Anytime
Write Time
Anytime; effective only during Enterprise
Database Server operations
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
Standard
Supported
49
Synonym
None
Restrictions
None
Explanation
The MAXWAIT task attribute specifies the maximum number of seconds a process can
wait on a BDMS LOCK or SECURE statement in a program. Each of these BDMS
statements finds and locks a record in an Enterprise Database Server data set or
KEYEDIOII file. These statements cause a process to wait if the requested record is
currently locked by another process.
The MAXWAIT task attribute also specifies the maximum number of seconds a process
can wait on a BDMS BEGIN TRANSACTION or END TRANSACTION statement in a
program. In an Enterprise Database Server database, BEGIN TRANSACTION is used to
enter transaction state and END TRANSACTION is used to leave transaction state. These
statements cause a process to wait if a syncpoint is due and the program in the
transaction state that is holding up the syncpoint is not executing any BDMS verbs.
If an attempt is made to assign a negative value to the MAXWAIT attribute, the default
value of zero is assigned.
Note: By default, there is no MAXWAIT value, and the Enterprise Database Server
performs an unlimited wait. Once an explicit assignment is made to MAXWAIT, the only
means to revert to an unlimited wait is to specify a very large value for the MAXWAIT
attribute. An explicit assignment of 0 (or an assignment of a negative value) to
MAXWAIT specifies that the process is not to wait at all.
If the time limit specified by MAXWAIT is exceeded, the LOCK, BEGIN TRANSACTION,
and END TRANSACTION operations fail and the database status word stores a
DMERROR of DEADLOCK and a DMERRORTYPE of 2.
5–20
8600 0502–407
MAXWAIT
For information about the BDMS LOCK, SECURE, BEGIN TRANSACTION, and END
TRANSACTION statements, refer to the MCP/AS ALGOL Programming Reference
Manual, Volume 2: Product Interfaces, the MCP/AS COBOL ANSI-85 Programming
Reference Manual, Volume 2: Product Interfaces, and the MCP/AS DMSII Application
Program Interfaces Programming Guide.
If MAXWAIT is accessed through Host Services, bit 47 will always be zero.
This attribute should not be confused with the WAITLIMIT task attribute, which specifies
the number of seconds a process can wait on an event. Refer to the WAITLIMIT
description for details.
Inheritance
A task inherits the MAXWAIT value of its parent if the parent's MAXWAIT value is not
unlimited.
Example
The following is a BDMSALGOL example:
MYSELF.MAXWAIT := 60;
LOCK FIRST STUDENT: RSLT;
IF BOOLEAN(RSLT) THEN
IF RSLT.DMERROR = DEADLOCK THEN
IF RSLT.DMERRORTYPE = 2 THEN
DISPLAY("RECORD NOT UPDATED - LOCKED BY ANOTHER PROCESS");
In this example, STUDENT is the name of a data set and RSLT is a real variable.
Run-Time Error
MAXWAIT ILLEGAL ATTRIBUTE VALUE - TOO LARGE
A process attempted to assign MAXWAIT a value greater than the maximum. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 135 (VALUETOOLARGEV).
8600 0502–407
5–21
MCSNAME
MCSNAME
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
Never
Inheritance
See below
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
From parent
None (read-only)
Supported
122
Synonym
None
Restrictions
None
Explanation
The MCSNAME task attribute records the name of the message control system (MCS)
that initiated this process family, if it was initiated by an MCS. For example, processes
initiated from a MARC session have an MCSNAME that refers to COMS. Processes
initiated from a CANDE session, even if that session is in a COMS window, have an
MCSNAME that refers to CANDE.
The exact spelling of the MCSNAME corresponds to the file name of the MCS object
code file. No ON part is included. An asterisk (*) might or might not appear at
the start of the MCSNAME. For example, the MCSNAME for COMS might be
*SYSTEM/COMS. The MCSNAME for CANDE might be SYSTEM/CANDE.
Default
Before a process is initiated, the default MCSNAME value is a null string. When an MCS
sets the SOURCESTATION task attribute of a process, the operating system sets the
MCSNAME attribute to the name of the setting MCS.
Inheritance
A process inherits the MCSNAME value of its parent.
If a WFL job is initiated from a CANDE or MARC session or from a task descended from
such a session, the WFL job inherits the MCSNAME of the session.
5–22
8600 0502–407
MIXNUMBER
MIXNUMBER
Type
Integer
Units
Not applicable
Range
Default
-65535 to 65535
See below
Read Time
Anytime
Write Time
Never
Inheritance
None
Fork() Inheritance
None
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
None (read-only)
Supported
1
STACKNO
None
Explanation
The MIXNUMBER task attribute returns the mix number of a process. The mix number
uniquely identifies the process in system messages, log entries, and system commands
that affect the process.
A positive MIXNUMBER value indicates an in-use process or a suspended process. A
negative value indicates a terminated process. A zero indicates that the process has not
yet been initiated.
For a further discussion of mix numbers, refer to the Task Management Programming
Guide.
Default
The system assigns the MIXNUMBER task attribute of a new process the next available
mix number that is not in use.
8600 0502–407
5–23
MPID
MPID
Type
String
Units
Not applicable
Range
Default
Null string
Read Time
Anytime
Write Time
Before task initiation
Inheritance
From parent
Fork() Inheritance
From parent
Overwrite Rules
Host Services
Attribute Number
Standard
Not supported
158
Synonym
None
Restrictions
None
Explanation
The MPID task attribute specifies another identity, in addition to the task name, for a
process. This attribute is useful at sites where multiple copies of the same code file are
used simultaneously because the attribute value is shown in response to mix-related
system commands.
Run-Time Errors
MPID ATTRIBUTE INCORRECT SYNTAX
A process attempted to assign MPID a value that did not conform to the MPID identifier
syntax. The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE =
2 (PROGRAMCAUSEV) and HISTORYREASON = 131 (INCORRECTSYNTAXV).
MPID ATTRIBUTE IS READONLY ON ACTIVE TASK
A process attempted to assign a value to the MPID task attribute of an in-use process.
The assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYACTIVEV).
5–24
8600 0502–407
MYPPB
MYPPB
Type
String
Units
Not applicable
Range
Default
Null
Read Time
See below
Write Time
Before initiation
Inheritance
None
Fork() Inheritance
Overwrite Rules
Host Services
Attribute Number
Synonym
Restrictions
From parent
Standard
Not supported
37
TASK
Not available in WFL
Range
ÚêÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ÄÄÁÄÂÄÄÂÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
ÃÄÄÄÄÄÄÄÄÄÄÄ´
ÀÄÄÄÄÄÄÄÄÄÄÙ
For the syntax of these assignments, refer to the Work Flow Language (WFL)
Programming Reference Manual.
Explanation
The MYPPB task attribute provides temporary storage for task equations that are not
meant to take effect immediately.
The MYPPB task attribute can be assigned only through calls on the
HANDLEATTRIBUTES procedure of the WFLSUPPORT system library. The user program
can control the behavior of HANDLEATTRIBUTES through several parameters, including
one that enables or disables compiler mode and another that specifies a DISPOSITION.
8600 0502–407
5–25
MYPPB
HANDLEATTRIBUTES can assign task equations intended for application to a process,
task equations intended for application to an object code file, or both. The task equations
intended for a process include
•
Compiler task equations assigned in compiler mode with a DISPOSITION of
AIATTACHV.
•
Noncompiler task equations assigned in noncompiler mode with a DISPOSITION of
AIATTACHV.
The MYPPB task equations intended for a process are applied when one of the following
happens:
•
The task variable is used in a process initiation statement.
•
The APPLYLIST task attribute of the task variable is assigned a value of TRUE.
The task equations intended for an object code file include all noncompiler task
equations assigned in compiler mode with a DISPOSITION of AIATTACHV or AIAPPLYV.
The system does not apply these task equations, even when APPLYLIST is set to TRUE
or the task variable is used in a process initiation statement. However, if the task variable
is used to initiate a compiler, the compiler applies these task equations to the object
code file it creates.
The HANDLEATTRIBUTES procedure can be invoked repeatedly to make assignments to
the MYPPB attribute of the same task variable. In this case, the system merges the task
equations provided by each HANDLEATTRIBUTES call with the task equations already
stored in MYPPB. If a particular task equation conflicts with an existing task equation,
the new task equation overwrites the old one.
For a description of the HANDLEATTRIBUTES procedure, refer to “Using WFLSUPPORT
to Access Task Attributes” in Section 1, “Accessing Task Attributes.”
Read Time
The MYPPB task attribute can be read at any time from ALGOL or COBOL. However,
the value returned is encoded in an internal form that does not resemble the original
MYPPB assignments.
Run-Time Error
MYPPB ATTRIBUTE IS READONLY ON ACTIVE TASK
An attempt was made to assign the MYPPB attribute of an in-use process. The
assigning process, if nonprivileged, is discontinued with HISTORYCAUSE = 2
(PROGRAMCAUSEV) and HISTORYREASON = 33 (READONLYONACTIVEV).
5–26
8600 0502–407
NAME
NAME
Type
String
Units
Not applicable
Range
Default
See below
Read Time
Anytime
Write Time
See below
Inheritance
See below
Fork() Inheritance
From parent
Overwrite Rules
See below
Host Services
Supported
Attribute Number
0
Synonym
None
Restrictions
None
Explanation
The NAME task attribute specifies the name of the process. The name of the process is
used in the following ways:
•
Before initiating an external process, the initiating process typically assigns the
NAME task attribute of the task variable of the external process. The NAME value
specifies the title of the object code file that is to be initiated.
•
The NAME value appears in messages and log entries generated for the process.
•
Guard files can specify that only processes with a given NAME are allowed to access
a particular file.
Note that the FAMILY attribute used during process initiation is the FAMILY attribute of
the initiator, not the FAMILY attribute of the new process. To determine the family to
search for the object code file of a process, the system consults the NAME attribute of
the new process and the FAMILY attribute of the initiator, and applies family substitution
if appropriate. Refer to the FAMILY description for an explanation of family substitution.
8600 0502–407
5–27
NAME
Default and Inheritance
An internal process inherits the NAME value of its parent. For an external process, the
NAME value defaults to the name of the declared external procedure specified in the
initiation statement. For example, in ALGOL the following statements initiate a process
whose NAME task attribute is DATADC:
TASK T;
PROCEDURE DATADC;
EXTERNAL;
PROCESS DATADC [T];
For an internal process, the NAME value is automatically prefixed with the USERCODE
task attribute value of the initiating process at initiation time. If an internal process is
initiated with a different USERCODE than the initiator, the NAME value is nevertheless
prefixed with the USERCODE of the initiator rather than the USERCODE of the internal
process. If NAME is explicitly assigned a value that includes a different usercode at the
start, this usercode is overwritten with the usercode of the initiating process.
For an external process, NAME can specify an object code file with a different usercode
than the process or a nonusercoded object code file. If NAME does not explicitly specify
a usercode or asterisk (*), then the system searches for the object code file first under
the USERCODE of the initiating process, and then as a nonusercoded file. Note that the
system uses the USERCODE of the initiating process for this search, not the
USERCODE of the new process.
Write Time
Processes with MCS status or tasking status can modify the NAME task attribute at any
time. Processes that lack MCS and tasking status can modify the NAME task attribute
only before initiation.
5–28
8600 0502–407
NAME
Overwrite Rules
Standard overwrite rules are applied. However, you should be aware that the WFL RUN