[MC_]CONFIRM

The CONFIRM verb sends the contents of the local LUs send buffer and a confirmation request to the partner transaction program. In response to the CONFIRM verb, the partner transaction program normally issues the CONFIRMED verb to confirm that it has received the data without error. (If the partner transaction program encounters an error, it issues the SEND_ERROR verb or abnormally deallocates the conversation.)

The transaction program can issue the CONFIRM verb only if the conversation's synchronization level, established by the ALLOCATE verb, is AP_CONFIRM_SYNC_LEVEL.

VCB Structure

typedef struct confirm
{
 unsigned short    opcode;             /* verb operation code      */
 unsigned char     opext;              /* verb extension code      */
 unsigned char     format;             /* format                   */
 unsigned short    primary_rc;         /* primary return code      */
 unsigned long     secondary_rc;       /* secondary return code    */
 unsigned char     tp_id[8];           /* TP identifier            */
 unsigned long     conv_id;            /* conversation identifier  */
 unsigned char     rts_rcvd;           /* request to send received */
#ifdef WINAPPC_FORMAT_1
 unsigned char     expd_data_rcvd;     /* expedited data received  */
#endif
} CONFIRM;
typedef struct mc_confirm
{
 unsigned short      opcode;              /* verb operation code      */
 unsigned char       opext;               /* verb extension code      */
 unsigned char       format;              /* format                   */
 unsigned short      primary_rc;          /* primary return code      */
 unsigned long       secondary_rc;        /* secondary return code    */
 unsigned char       tp_id[8];            /* TP identifier            */
 unsigned long       conv_id;             /* conversation identifier  */
 unsigned char       rts_rcvd;            /* request to send received */
#ifdef WINAPPC_FORMAT_1
 unsigned char       expd_data_rcvd;      /* expedited data received  */
#endif
} MC_CONFIRM;

Supplied Parameters

The transaction program supplies the following parameters to Personal Communications:
opcode
AP_B_CONFIRM
Displays a basic verb icon.
AP_M_CONFIRM
Displays a mapped verb icon.
opext
AP_BASIC_CONVERSATION or AP_MAPPED_CONVERSATION. For nonblocking operation, this flag can be ORed together with AP_NON_BLOCKING.
format
Identifies the format of the VCB. Set this field to one to specify the version of the VCB listed above.
tp_id
Identifier for the local transaction program. The value of this parameter was returned by the TP_STARTED verb in the invoking transaction program or by RECEIVE_ALLOCATE in the invoked transaction program.
conv_id
Conversation identifier. The value of this parameter was returned by the ALLOCATE verb in the invoking transaction program or by RECEIVE_ALLOCATE in the invoked transaction program.

Returned Parameters

If the verb executes successfully, Personal Communications returns the following parameters:
primary_rc
AP_OK
rts_rcvd
Request-to-send-received indicator.

AP_YES
AP_NO

expd_data_rcvd
Expedited-data-received indicator. This indication continues to be set to AP_YES until a RECEIVE_EXPEDITED_DATA is issued.

AP_YES
AP_NO

This field requires the format 1 version of the VCB. See Full-Duplex VCBs for more details on accessing format 1 VCBs.
If the verb is nonblocking and has not completed, Personal Communications returns the following parameters;
primary_rc
AP_OPERATION_INCOMPLETE
opext
If the verb is nonblocking and has not completed, Personal Communications returns the following parameters:
AP_OPERATION_INCOMPLETE_FLAG
If the verb does not execute because of a parameter error, Personal Communications returns the following parameters:
primary_rc
AP_PARAMETER_CHECK
secondary_rc
AP_BAD_CONV_ID

AP_BAD_TP_ID
AP_CONFIRM_INVALID_FOR_FDX
AP_CONFIRM_ON_SYNC_LEVEL_NONE

If the conversation is in the wrong state when the transaction program issues this verb, Personal Communications returns the following parameters:
primary_rc
AP_STATE_CHECK
secondary_rc
AP_CONFIRM_BAD_STATE
AP_CONFIRM_NOT_LL_BDY
Displays a basic verb icon.
The conditions generating the following possible primary return codes (primary_rc) and indented secondary return codes (secondary_rc) are described in APPC Common Return Codes.

AP_ALLOCATION_ERROR

  • AP_SECURITY_NOT_VALID
  • AP_TRANS_PGM_NOT_AVAIL_RETRY
  • AP_TRANS_PGM_NOT_AVAIL_NO_RETRY
  • AP_TP_NAME_NOT_RECOGNIZED
  • AP_PIP_NOT_ALLOWED
  • AP_PIP_NOT_SPECIFIED_CORRECTLY
  • AP_CONVERSATION_TYPE_MISMATCH
  • AP_SYNC_LEVEL_NOT_SUPPORTED

AP_CONV_FAILURE_NO_RETRY
AP_CONV_FAILURE_RETRY

AP_DEALLOC_ABEND
Displays mapped verb icon.
AP_DEALLOC_ABEND_PROG
Displays basic verb icon.
AP_DEALLOC_ABEND_TIMER
Displays basic verb icon.

AP_PROG_ERROR_PURGING

AP_SVC_ERROR_PURGING
Displays basic verb icon.
AP_CONVERSATION_TYPE_MIXED
Displays mapped verb icon.
AP_UNEXPECTED_SYSTEM_ERROR
Displays mapped verb icon.

AP_TP_BUSY
AP_CANCELLED

Note:
For performance reasons, the SNA API client can return a successful return code on the [MC_]SEND_DATA verb without forwarding it to the server. When a subsequent [MC_]CONFIRM verb is issued, the [MC_]SEND_DATA is forwarded to the server for processing. If there is a [MC_]SEND_DATA error return code, it is returned on the [MC_]CONFIRM verb. See [MC_]SEND_DATA for a list of error return codes.