DEFINE PROCESS

Define a CICS® business transaction services process.

DEFINE PROCESS

Read syntax diagramSkip visual syntax diagramDEFINEPROCESS( data-value)PROCESSTYPE( data-value)TRANSID( data-value)PROGRAM( data-value)USERID( data-value)NOCHECK

Conditions: INVREQ, IOERR, NOTAUTH, PROCESSERR, TRANSIDERR

Description

DEFINE PROCESS defines a BTS process. It:
  • Adds a new process (for example, a new instance of a business transaction) to the CICS business transaction services system
  • Creates the process's root activity.

The name of the program used in the execution of the new process is taken either from the PROGRAM option, or, if PROGRAM is not specified, from the transaction definition pointed to by the TRANSID option.

The transaction attributes specified on the TRANSID and USERID options take effect when the process is activated by a RUN command, but not if it is activated by a LINK command—see RUN.

BTS does not commit the addition of the process until the requesting transaction has taken a successful syncpoint.

Options

NOCHECK
specifes that no record is to be written to the repository data set to reserve the name of the process.

Note that the process name must be unique in the repository—see the PROCESS and PROCESSTYPE options—and that BTS does not commit the addition of the process until the requesting transaction has taken a successful syncpoint.

You can use this option to improve BTS performance by removing the write to the repository and its associated logging. However, if you do so be aware that the error of specifying a non-unique process name no longer causes a PROCESSERR condition to be returned on the DEFINE PROCESS command. The error may not be discovered until much later—when syncpoint occurs—making it much harder to debug.

PROCESS(data-value)
specifies a name (1–36 characters) to identify the new process (business transaction instance). The name must be unique within the BTS repository data set on which details of the process are to be stored—see the PROCESSTYPE option. For example, it is valid to issue a DEFINE command on which the PROCESS option specifies a name that is currently in use by another process, provided that the PROCESSTYPE option maps to a different underlying repository data set from that on which the first process is defined.

The acceptable characters are A-Z a-z 0-9 $ @ # / % & ? ! : | " = ¬ , ; < > . - and _. Leading and embedded blank characters are also permitted.

If the name is specified as a literal string that is less than 36 characters long, it is padded with trailing blanks up to 36 characters. If the name is specified as a variable whose value is less than 36 characters long, no padding occurs.

PROCESSTYPE(data-value)
specifies the type (1–8 characters) of the new process.

Each process-type maps to a VSAM data set (the repository), on which information about processes of the named type is stored. That is, information about the state of a process (and of its constituent activities) is stored on the repository associated with the process-type to which it belongs. Records for multiple process-types can be stored on the same repository data set.

You can categorize your processes by assigning them to different process-types.

PROGRAM(data-value)
specifies the name (1–8 characters) of the program for the process being added. If no program is specified, the name is taken from the TRANSID definition.
TRANSID(data-value)
specifies the name (1–4 characters) of the transaction under which the process is to run when it is activated by a RUN command.
Note: If the process is activated by a LINK command, it is run under the TRANSID of the transaction that issues the LINK.

The transaction must be defined in the CICS region in which the DEFINE PROCESS command is executed.

USERID(data-value)
specifies the userid (1–8 characters) under whose authority the process is to run when it is activated by a RUN command.
Note: If the process is activated by a LINK command, it is run under the userid of the transaction that issues the LINK.

The value of this field is known as the defined userid.

If you omit USERID, the defined userid defaults to the userid under which the transaction that issues the DEFINE command is running—we can call this the command userid.

If USERID is specified, CICS performs (at define time) a surrogate security check to verify that the command userid is authorized to use the defined userid. Thus, if you specify USERID, you must authorize the command userid as a surrogate user of the defined userid.

Conditions

16 INVREQ
RESP2 values:
12
The installed PROCESSTYPE is not enabled.
22
The unit of work that issued the DEFINE PROCESS command has already acquired an activity.
17 IOERR
RESP2 values:
29
The repository file is unavailable.
30
An input/output error has occurred on the repository file.
70 NOTAUTH
RESP2 values:
101
The user associated with the issuing task is not authorized to access the file associated with the BTS repository data set on which details of the process are to be stored.
102
The user associated with the issuing task is not authorized as a surrogate of the defined userid specified on the USERID option.
108 PROCESSERR
RESP2 values:
2
The process name specified on the PROCESS option is already in use on the BTS repository data set associated with the PROCESSTYPE option.
9
The process-type specified on the PROCESSTYPE option could not be found.
16
The process name specified on the PROCESS option contains an invalid character or characters.
28 TRANSIDERR
The transaction identifier specified on the TRANSID option is not defined to CICS.