The APPC mapped API provides commands to enable transactions to pass error notification across a conversation. There are three commands depending on the severity of the error. The most severe, ISSUE ABEND, causes the conversation to terminate abnormally and is described in Emergency termination of a conversation. The other two commands are described below.
If a transaction is receiving data on a conversation and wishes to send, it can use the ISSUE SIGNAL command to request that the partner transaction does a SEND INVITE. When the ISSUE SIGNAL request is received, EIBSIG=X'FF' and the SIGNAL condition is raised. It should be noted that on receipt of SIGNAL a transaction is not obliged to issue SEND INVITE.
If a transaction needs to send an immediate error notification to the partner transaction it can use the ISSUE ERROR command. This command is also one of the preferred negative responses to SEND CONFIRM. However it should not be used to reject ISSUE PREPARE, SYNCPOINT or SYNCPOINT ROLLBACK. When the ISSUE ERROR is received, EIBERR=X'FF' and the first two bytes of EIBERRCD are X'0889'. This error condition cannot be processed by HANDLE CONDITION (or RESP).
If an ISSUE ERROR command is used in receive state (state 5), all incoming data is purged until an INVITE, SYNCPOINT, or LAST command is received. If LAST is received, no error indication is sent to the partner transaction, EIBFREE=X'FF' and the conversation is switched to free state (state 12).
If LAST is not received, the conversation is switched to send state (state 2). It is normal programming practice to communicate the reason for the ISSUE ERROR to the partner transaction. The CONVERSE command could be used to send an appropriate error message and receive a reply.
Because ISSUE ERROR is allowed in both send state (state 2) and receive state (state 5), it is possible for both communicating transactions to use ISSUE ERROR at the same time. When this occurs, only one of the ISSUE ERROR commands is effective. The other is purged with incoming data. However both ISSUE ERROR commands will appear to have completed successfully and the transaction whose ISSUE ERROR was purged will pick up EIBERR=X'FF' on a subsequent command.
[[ Contents Previous Page | Next Page Index ]]