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


Half-duplex conversation states

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

The following half-duplex conversation states are defined:
  • RESET is the initial state in which the application program can allocate a conversation. There are no state transitions to the RESET state.
  • SEND is the state in which the application program can send data, request confirmation, or request sync point.
  • RECEIVE is the state in which the application program can receive information from the remote transaction program.
  • CONFIRM is the state in which the application program can reply to a confirmation request and includes the actual states of RECEIVE_CONFIRM, RECEIVE_CONFIRM_SEND, and RECEIVE_CONFIRM_DEALLOCATE.
  • PEND_END_CONV_LOG is the state in which the application program can receive error log data that immediately precedes the end of the conversation. (Error log data can also be received by the application program when the conversation is in RECEIVE state, but in that case the log data does not immediately precede the end of the conversation.) The PEND_END_CONV_LOG state is entered only when a conversation has ended and there is error log data to be received by the application.
  • PEND_RCV_LOG is the state in which the application program can receive error log data that does not immediately precede the end of the conversation.
  • PEND_SEND is the state in which the conversation is placed when data and a change-direction indicator are both returned on an APPCCMD CONTROL=RECEIVE macroinstruction. This state is transient, but you can display it with MODIFY DISPLAY. Look at the CD indicator to determine whether a response was sent. If the conversation is in PEND_SEND state, only an FMH-7 is sent.
  • PENDING_ALLOCATE is the state in which the conversation is placed when the application issues the APPCCMD CONTROL=PREALLOC macroinstruction. The conversation remains in PENDING_ALLOCATE until the application issues the APPCCMD CONTROL=SENDFMH5 macroinstruction.
  • END_CONV is the state in which the conversation is placed when the conversation is being deallocated. This state is transient. Although you might be able to see it by using MODIFY DISPLAY, once it completes the conversation ID is returned to the conversation pool for reuse.
  • PEND_DEALL is the state in which the conversation is placed when the application issues the APPCCMD CONTROL=DEALLOC, QUALIFY=CONFIRM|DATACON macroinstruction. If the partner LU sends a positive reply, the conversation is placed in END_CONV state. If the partner LU sends a negative reply, the conversation is placed in RECEIVE state.
Note: SYNC_POINT, SYNC_POINT_SEND, SYNC_POINT_DEALLOCATE, DEFER_RECEIVE, DEFER_DEALLOCATE, DEALLOCATE, and BACKOUT_REQUIRED are not maintained by VTAM® LU 6.2.
The state of the conversation determines the APPCCMD that the application is allowed to issue. Table 1 correlates the APPCCMD and its CONTROL and QUALIFY settings to the half-duplex conversation states. For each APPCCMD and state, a "yes," "no," or "n⁄a" is indicated.
yes
The application program is allowed to issue the APPCCMD when the conversation is in that state.
no
The application program cannot issue the APPCCMD when the conversation is in that state. An APPCCMD issued for a conversation in a disallowed state completes with a return code indicating STATE_ERROR.
n⁄a
The state is not applicable either because it cannot exist at the time the APPCCMD is issued or because it is not relevant to the APPCCMD.
Table 1. Correlation of basic conversation macroinstructions to half-duplex conversation states
APPCCMD CONTROL= ,QUALIFY= RESET SEND RECEIVE CONFIRM PEND END CONV LOG PEND RCV LOG PEND SEND PEND ALLOC
DEALLOC, ABNDnnnn n/a yes yes yes yes yes yes yes
DEALLOC, CONFIRM n/a yes no no no no yes no
DEALLOC, DATACON n/a yes no no no no yes no
DEALLOC, DATAFLU n/a yes no no no no yes no
DEALLOC, FLUSH n/a yes no no no no yes no
DEALLOCQ, ABNDnnnn n/a yes yes yes yes yes yes yes
PREPRCV n/a yes no no no no yes no
RCVEXPD, ANY 1 n/a yes yes yes yes yes yes no
RCVEXPD, IANY 1 n/a yes yes yes yes yes yes no
RCVEXPD, ISPEC n/a yes yes yes yes yes yes no
RCVEXPD, SPEC n/a yes yes yes yes yes yes no
RECEIVE, ANY 2 n/a n/a yes n/a n/a n/a n/a no
RECEIVE, IANY 2 n/a n/a yes n/a n/a n/a n/a no
RECEIVE, ISPEC n/a no yes no yes yes no no
RECEIVE, SPEC n/a yes yes no yes yes yes no
REJECT, CONV n/a yes yes yes yes yes yes yes
RESETRCV n/a yes yes yes yes yes yes no
SEND, CONFIRM n/a yes no no no no yes no
SEND, CONFRMD n/a no no yes no no no no
SEND, DATA n/a yes no no no no yes no
SEND, DATACON n/a yes no no no no yes no
SEND, DATAFLU n/a yes no no no no yes no
SEND, ERROR n/a yes yes yes no yes yes no
SEND, FLUSH n/a yes no no no no yes no
SEND, RQSEND n/a yes yes yes 3 no no no no
SENDEXPD, DATA 4 n/a yes yes yes yes yes yes no
SENDFMH5 n/a n/a no no no no no yes

APPCCMD CONTROL=RCVFMH5, APPCCMD CONTROL=PREALLOC, and CONTROL=ALLOC cannot be issued against a specific conversation and therefore are not included in Table 1. APPCCMD CONTROL=CHECK is also not included because it cannot cause a state error to occur. It causes the application program to synchronously wait until a previously-issued asynchronous APPCCMD completes. Because APPCCMD CONTROL=CHECK is issued against a prior APPCCMD, any state errors that occur would have been detected when the prior macroinstruction was issued. APPCCMD CONTROL=TESTSTAT is not included because it cannot cause a state error to occur. Its processing does not alter the conversation.

1 The APPCCMD CONTROL=RCVEXPD, QUALIFY=ANY|IANY cannot be issued against a specific conversation. This macroinstruction is shown in the table to illustrate the fact that when the application program issues the APPCCMD CONTROL=RCVEXPD, QUALIFY=ANY|IANY, a conversation in continue-any expedited data mode will apply to the APPCCMD in any active state.
2 APPCCMD CONTROL=RECEIVE, QUALIFY=ANY|IANY cannot be issued against a specific conversation. This macroinstruction is shown in this table to illustrate the fact that when the application program issues the APPCCMD CONTROL=RECEIVE, QUALIFY=ANY, a conversation in continue-any normal data mode has to be in RECEIVE state in order to apply the APPCCMD.
3 APPCCMD CONTROL=SEND, QUALIFY=RQSEND cannot be issued in CONFIRM state if the received confirmation request accompanied a request for termination of the conversation.
4 The APPCCMD CONTROL=SENDEXPD, QUALIFY=DATA can be issued only against a half-duplex conversation if its underlying session supports full-duplex and expedited data protocols.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014