z/OS Communications Server: SNA Programmer's LU 6.2 Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Using CONTROL=DEALLOC and CONTROL=DEALLOCQ

z/OS Communications Server: SNA Programmer's LU 6.2 Guide
SC27-3669-00

The application initiates the abnormal deallocation by issuing either the APPCCMD CONTROL=DEALLOC or the APPCCMD CONTROL=DEALLOCQ macroinstructions.

The APPCCMD CONTROL=DEALLOC macroinstruction should be used when it is not desirable to wait for the arrival of information from the partner before deallocating the conversation. VTAM® waits for information from the partner before sending a negative response when the conversation is in receive state and information has not been received from the partner to which it can respond. In this case, the APPCCMD CONTROL=DEALLOC is returned to the application program with error return codes. The application program can reissue the macroinstruction or issue APPCCMD CONTROL=REJECT, QUALIFY=CONV to abnormally end the conversation and session.

The APPCCMD CONTROL=DEALLOCQ macroinstruction should be used when it is not desirable to reject the macroinstruction for this situation, but it is desirable to wait for the arrival of information. APPCCMD CONTROL=DEALLOCQ can result in deadlock situations if some condition, such as a failed partner LU, prevents VTAM from receiving additional information. A user who codes the APPCCMD CONTROL=DEALLOCQ macroinstruction on existing application programs must verify that the program logic can tolerate this possible hang situation.

The processing of these macroinstructions causes the LU's send buffer to be flushed and an FMH-7 and any error log data to be sent to the partner LU.

The APPCCMD CONTROL=DEALLOC and APPCCMD CONTROL=DEALLOCQ macroinstructions include four types:
  • QUALIFY=ABNDPROG
  • QUALIFY=ABNDSERV
  • QUALIFY=ABNDTIME
  • QUALIFY=ABNDUSER
Each of these types is described in the following section.
ABNDPROG
Specifies that an error makes it impossible to continue meaningful communication over the conversation. It is issued for errors detected by the processing threads in the application program that correspond to transaction programs. An example of this type of error could be the receipt of incorrect data on a CONTROL=RECEIVE macroinstruction. This type of error causes a sense code of X'08640000' to be generated in the FMH-7 used by VTAM in processing the error. (See Sense codes for FMH-7 for a list of FMH-7 sense codes.)
ABNDSERV
Specifies that an LU services component has detected an error. This type of error occurs when the application program has implemented an LU 6.2 function in addition to that provided by VTAM. For example, an application program might implement mapped conversations. Errors relating to the application's implementation would be service errors. If the errors were serious enough to deallocate the conversation, the application program would issue this QUALIFY variation. This type of error causes a sense code of X'08640001' to be generated in the FMH-7 used by VTAM in processing the error. (See Sense codes for FMH-7 for a list of FMH-7 sense codes.)
ABNDTIME
Specifies that the application program has not received expected information within an application-determined length of time. This type of error causes a sense code of X'08640002' to be generated in the FMH-7 used by VTAM in processing the error. (See Sense codes for FMH-7 for a list of FMH-7 sense codes.) ABNDTIME can be used by the application program to handle errors originating on its side of the conversation or when it fails to receive information from a partner LU. Its primary intent is to handle timing errors on the local side of a conversation. For example, if an application program has been waiting for one of its transaction programs to send data, and the wait exceeds the time limit, it would use this type of deallocation to end the conversation.
ABNDUSER
Specifies that the application program is ending the conversation and provides VTAM with a user-specified sense code. The sense code must be valid for an FMH-7. The application program must ensure that it is. An example of the type of error this is used for would be the receipt of an FMH-5 with errors. (See Sense codes for FMH-7 for a list of FMH-7 sense codes.)

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014