MC_CONFIRMED

この MC_CONFIRMED は、パートナー トランザクション プログラム (TP) からの確認要求に応答します。 ローカル TP が受信したデータでエラーを検出していないとパートナー TP に通知します。 確認要求を発行する TP は確認を待機MC_CONFIRMED 2 つの TP の処理を同期します。

次の構造体は、次の動詞によって使用される動詞制御ブロック (VCB) MC_CONFIRMED します。

構文


struct mc_confirmed {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned long   conv_id;  
    unsigned char   rts_rcvd;  
};   

メンバー

opcode
指定されたパラメーター。 動詞の操作コードを指定AP_M_CONFIRMED。

opext
指定されたパラメーター。 動詞の操作拡張機能を指定AP_MAPPED_CONVERSATION。

reserv2
予約済みフィールド。

primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるプライマリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。

secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。

tp_id
指定されたパラメーター。 ローカル TP を識別します。 このパラメーターの値は、呼び出し元の TP TP_STARTED呼び出された TP で、または呼び出RECEIVE_ALLOCATE TP の値によって返されました。

conv_id
指定されたパラメーター。 2 つの TP 間で確立された会話を識別します。 このパラメーターの値は、呼び出し元の TP MC_ALLOCATE、または呼び出された TP のRECEIVE_ALLOCATEによって返されます。

rts_rcvd
返されたパラメーター。 パートナー TP がメッセージ交換を発行MC_REQUEST_TO_SEND、ローカル TP にメッセージ交換を RECEIVE 状態に変更を要求するかどうかを示します。

RECEIVE 状態に変更するには、ローカル TP で MC_PREPARE_TO_RECEIVE、MC_RECEIVE_AND_WAIT、またはMC_RECEIVE_AND_POST。

リターン コード

AP_OK
プライマリ リターン コード。動詞は正常に実行されました。

AP_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞は実行されませんでした。

AP_BAD_CONV_ID

セカンダリ リターン コード。の 値conv_id APPC によって割り当てられた会話識別子と一致しません。

AP_BAD_TP_ID

セカンダリ リターン コード。の 値tp_id APPC によって割り当てられた TP 識別子と一致しません。

AP_STATE_CHECK
プライマリ リターン コード。動詞は無効な状態で発行されたため、実行されませんでした。

AP_CONFIRMED_BAD_STATE

セカンダリ リターン コード。メッセージの状態が CONFIRM、CONFIRM_SEND、CONFIRM_DEALLOCATEではありません。

AP_COMM_SUBSYSTEM_ABENDED
プライマリ リターン コード。次のいずれかの条件を示します。

  • このメッセージ交換で使用されているノードで、ABEND が発生しました。

  • TP と PU 2.1 ノードの間の接続が切断されました (LAN エラー)。

  • TP のコンピューターの SnaBase で ABEND が発生しました。

    ABEND の理由を特定するには、システム管理者がエラー ログを調べる必要があります。

    AP_COMM_SUBSYSTEM_NOT_LOADED
    プライマリ リターン コード。動詞の処理中に、必要なコンポーネントを読み込めなかったか、終了できませんでした。 そのため、通信を行うことができませんでした。 是正措置については、システム管理者に問い合わせてください。

    AP_CONVERSATION_TYPE_MIXED
    プライマリ リターン コード。TP は、基本的な会話動詞とマップされた会話動詞の両方を発行しました。 1 つの会話で発行できる型は 1 つのみです。

    AP_INVALID_VERB_SEGMENT
    プライマリ リターン コード。VCB がデータ セグメントの終わりを越えています。

    AP_STACK_TOO_SMALL
    プライマリ リターン コード。アプリケーションのスタック サイズが小さすぎて動詞を実行できません。 アプリケーションのスタック サイズを増やしてください。

    AP_CONV_BUSY
    プライマリ リターン コード。どの会話でも、一度に 1 つの未処理の会話動詞のみを使用できます。 これは、ローカル TP に複数のスレッドが含まれる場合に発生する可能性があります。また、複数のスレッドが同じスレッドを使用して APPC 呼び出 しを発行conv_id

    AP_THREAD_BLOCKING
    プライマリ リターン コード。呼び出し元のスレッドは、既にブロック呼び出しにあります。

    AP_UNEXPECTED_DOS_ERROR
    プライマリ リターン コード。ローカル TP からの APPC 呼び出しの処理中に、オペレーティング システムから APPC にエラーが返されました。 オペレーティング システムのリターン コードは、secondary_rc 経由で返されます。 これは、Intel バイトスワップ順で表示されます。 問題が解決しない場合は、システム管理者に問い合わせてください。

解説

TP がこの動詞を発行する場合、会話は次のいずれかの状態である必要があります。

  • CONFIRM

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    新しい状態は、古い状態 (ローカル TP が発行した場合の会話の状態) によってMC_CONFIRMED。 古い状態は、前の受信動詞 what_rcvdパラメーターの 値によって示されます。 次の状態変更が可能です。

古い状態 新しい状態
CONFIRM RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE RESET

確認要求

確認要求は、パートナー TP で次のいずれかの動詞によって発行されます。

  • MC_CONFIRM

  • MC_PREPARE_TO_RECEIVEptr_type に設定AP_SYNC_LEVEL、会話の同期レベル ( MC_ALLOCATE によって確立) がAP_CONFIRM_SYNC_LEVEL

  • MC_DEALLOCATEdealloc_type に設定AP_SYNC_LEVEL、会話の同期レベル (MC_ALLOCATE によって確立) がAP_CONFIRM_SYNC_LEVEL

  • MC_SEND_DATA がに設定され、AP_SEND_DATA_CONFIRMによって確立された会話の同期レベルがMC_ALLOCATE場合AP_CONFIRM_SYNC_LEVEL

    確認要求は、次のいずれかの動詞の what_rcvd パラメーターを使用して、ローカル TP によって受信されます。

  • MC_RECEIVE_IMMEDIATE

  • MC_RECEIVE_AND_WAIT

  • MC_RECEIVE_AND_POST

    MC_CONFIRMED TP によって発行されるのは、次 what_rcvd 値が含まれている場合のみです。

  • AP_CONFIRM_WHAT_RECEIVED

  • AP_CONFIRM_SEND

  • AP_CONFIRM_DEALLOCATE

    パラメーターが rtn_status に設定されている場合 AP_YES、what_rcvd 値を含めすることもできます。

  • AP_DATA_COMPLETE_CONFIRM

  • AP_DATA_COMPLETE_CONFIRM_SEND

  • AP_DATA_COMPLETE_CONFIRM_DEALL