Alternate PCB statement
The alternate PCB describes a destination other than the source of the current input message.
This statement instruction allows the application program to send output messages to a destination other than the source of an input message.
These messages can be sent to either an output terminal or an input transaction queue to be processed by another program. Each output message destination requires a separate alternate PCB destination. If the input source terminal is all that is required to respond with output, do not include any PCB statements of this type. Message processing programs, batch message processing programs, and Fast Path programs can have alternate PCB statements in their associated PSBs. An alternate PCB cannot be used to send a message to a Fast Path transaction; however, Fast Path application programs can use an alternate PCB to route messages to any terminal or IMS transaction.
Alternate PCB statements must be first in the PSB generation control card deck, followed by the statements identifying PCBs associated with IMS databases. The following diagram shows the alternate PCB statement format.
- 1 label and PCBNAME are mutually exclusive. Use either the label or the PCBNAME= parameter.
- 2 label and PCBNAME are mutually exclusive. Use either the label or the PCBNAME= parameter.
- label
- Specifies an alphanumeric label from 1 to 8 characters long, that
is valid for an assembler language statement. The labels for the PCB
statement within a PSB must be unique. Exception: Do not specify this parameter if the PCBNAME= parameter is used.
- PCB
- Indicates that this is a PCB statement.
- TYPE=TP
- Is a required keyword parameter for all alternate PCBs.
- LTERM=|NAME=
- Is the parameter for the output message destination. The
name
is the actual destination of the message and is either a logical terminal name (LTERM=) or a transaction-code name (NAME=). When the name is a transaction-code name, output messages to this PCB are enqueued for input to the program used to process the transaction code named by the NAME parameter. The name must be from 1- to 8-alphanumeric characters in length, and must be specified in the user's IMS system definition as a logical terminal name or transaction code. The LTERM= or NAME= parameter is required except when MODIFY=YES is specified. - EXTERNALNAME=
- An optional alias for the PCB label or the PCBNAME= parameter. Java™ application programs use the
external name to refer to the PCB.
Specify an external name as a 1- to 128-character uppercase alphanumeric string. An external name can include underscore characters.
The external name must be unique within a PSB.
When EXTERNALNAME is not specified, the default external name is either the PCB label or the PCBNAME, whichever has been specified.
If no PCB label or PCBNAME is specified, EXTERNALNAME defaults to blanks.
Restriction: External names cannot be reserved SQL keywords or begin with DFS.If the EXTERNALNAME parameter is not specified and a reserved SQL keyword is specified in the NAME parameter, EXTERNALNAME accepts the NAME value as the default external name after appending
_SCH
to the NAME value. - ALTRESP=
- Specifies whether (YES) or not (NO) this alternate PCB can be used instead of the I/O PCB for responding to terminals in response mode, conversational mode, or exclusive mode. The default value is NO. ALTRESP=YES is only valid for alternate PCBs.
- SAMETRM=
- Specifies whether (YES) or not (NO) IMS verifies that the logical terminal named in the response alternate PCB is assigned to the same physical terminal as the logical terminal that originated the input message. The default value is NO. You must specify SAMETRM=YES for response alternate PCBs used by conversational programs and programs operating with terminals in response mode. SAMETRM=NO should be specified if alternate response PCBs are used to send messages to output-only devices that are in exclusive mode.
- MODIFY=
- Specifies whether the alternate PCB is modifiable (YES). This feature allows for the dynamic modification of the destination name associated with this PCB. Default value is NO. If MODIFY=YES is specified, omit the NAME= or LTERM= parameter.
- EXPRESS=
- Specifies whether messages from this alternate PCB are to be sent
(YES) or are to be backed out (NO) if the application program should
abend.
- YES
- When specified, indicates EXPRESS messages can be sent to the
destination terminal even though the program abends or issues a ROLL
or ROLB call. For all PCBs (express or non-express) under these conditions,
messages inserted but not made available for transmission are canceled,
while messages made available for transmission are never canceled.
For a non-express PCB, the message is not available for transmission to its destination until the program reaches a sync (commit) point. The sync point occurs when the program terminates, issues a CHKP call, or requests the next input message (if the transaction is defined with MODE=SNGL).
For an express PCB, the message is available for transmission to the destination when IMS knows it has the complete message. The message is available when a PURG call is made using that PCB, or when the program requests the next input message.
When the PSB is defined as a Fast Path application in the IMS system definition, EXPRESS=YES, if specified, will be ignored at execution time for a response alternate PCB.
- NO
- When specified, indicates messages are backed out if the application program abends. NO is the default.
- PCBNAME=
- Specifies the name of the PCB. The PCB name must be an alphanumeric,
8-byte character string that follows standard naming conventions.
The PCB name must be unique within the PSB. Exception: Do not specify this parameter if a label is used.
- LIST=
- Specifies whether the named PCB is included in the PCB list passed
to the application program at entry. Specify YES to include a named
PCB in the PCB list. Specify NO to exclude a named PCB from the PCB
list. YES is the default.
To exclude a PCB from the PCB list, you must assign the PCB a name with the PCBNAME= parameter. You can specify LIST=NO if an application program does not need a PCB's address.
- REMARKS=
- Optional user comments. A 1- to 256-character field.
If your comments contain special characters, such as commas or blank spaces, enclose the full comment string in single quotation marks.
The value specified on the REMARKS keyword cannot contain the following characters:- Single quotation marks, except when they are used to enclose the full comment string. If
a single quotation mark is entered before the end of the full comment string, the remainder
of the comment string is truncated. The following examples show correct and incorrect
usages of single quotation marks on the REMARKS keyword:
- CORRECT
REMARKS='These remarks apply to the XYZ application'- INCORRECT
REMARKS='These remarks apply to the 'XYZ' application'
- Double quotation marks.
- Less than (< ) symbols.
- Greater than ( >) symbols.
- Ampersands (&).
- Single quotation marks, except when they are used to enclose the full comment string. If
a single quotation mark is entered before the end of the full comment string, the remainder
of the comment string is truncated. The following examples show correct and incorrect
usages of single quotation marks on the REMARKS keyword:
