MC_SEND_ERROR

MC_SEND_ERROR動詞は、ローカル TP でアプリケーション レベルのエラーが発生したことをパートナー トランザクション プログラム (TP) に通知します。

次の構造体では、 MC_SEND_ERROR 動詞で使用される動詞制御ブロック (VCB) について説明します。

構文

  
struct mc_send_error {  
    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;  
      unsigned char       err_type;  
    unsigned char       err_dir;  
    unsigned char       reserv4;  
    unsigned char       reserv5[2];  
    unsigned char       reserv6[4];  
};   

メンバー

opcode
指定されたパラメーター。 動詞操作コード (AP_M_SEND_ERROR) を指定します。

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

reserv2
予約済みフィールド。

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

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

tp_id
指定されたパラメーター。 ローカル TP を識別します。

このパラメーターの値は、呼び出し元の TP で TP_STARTED するか、呼び出された TP のRECEIVE_ALLOCATE によって返されます。

conv_id
指定されたパラメーター。 会話識別子を提供します。 このパラメーターの値は、呼び出し元の TP で MC_ALLOCATEするか、呼び出された TP でRECEIVE_ALLOCATE することによって返されます。

rts_rcvd
返されたパラメーター。 パートナー TP が MC_REQUEST_TO_SEND発行したかどうかを示します。使用できる値は次のとおりです。

  • AP_YESは、パートナー TP が MC_REQUEST_TO_SENDを発行したことを示します。これにより、ローカル TP が会話を RECEIVE 状態に変更するよう要求します。 RECEIVE 状態に変更するには、ローカル TP で MC_PREPARE_TO_RECEIVE、MC_RECEIVE_AND_WAIT、またはMC_RECEIVE_AND_POSTを使用できます。

  • AP_NOは、パートナー TP が MC_REQUEST_TO_SENDを発行しなかったことを示します。

    err_type
    マップされた会話の場合、同期ポイントがサポートされている場合は、このパラメーターが指定されます。 有効な値は次のとおりです。

    AP_PROG

    AP_BACKOUT_NO_RESYNC

    AP_BACKOUT_RESYNC

    err_dir
    指定されたパラメーター。 エラーが受信したデータと、送信しようとしているデータのどちらであるかを示します。 このパラメーターは、会話がSEND_PENDING状態の場合にのみ使用します。 それ以外の場合、パラメーターは無視されます。 使用できる値を次に示します。

  • AP_RCV_DIR_ERRORは、受信したデータに関連するエラーを検出した後、TP が MC_SEND_ERROR 発行したことを示します。

  • AP_SEND_DIR_ERRORは、TP が送信しようとしているデータに関連するエラーを 検出した後 にMC_SEND_ERROR発行されたことを示します。 たとえば、TP がディスク ドライブからデータを読み取っている間にエラーが発生しました。

    reserv3
    予約済みフィールド。

リターン コード

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

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

AP_BAD_CONV_ID

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

AP_BAD_TP_ID

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

AP_BAD_ERROR_DIRECTION

セカンダリ リターン コード。指定した err_dir が APPC によって認識されませんでした。

AP_SEND_ERROR_BAD_TYPE

セカンダリ リターン コード。 err_type の値が無効でした。

AP_SEND_ERROR_LOG_LL_WRONG

セカンダリ リターン コード。エラー・ログ GDS 変数の LL フィールドが、データの実際の長さと一致しませんでした。

MC_SEND_ERRORが許可された状態で 発行されると、 次のリターン コードを生成できます。

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

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

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

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

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

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

    この戻りコードを MC_ALLOCATEと共に使用すると、ローカル論理装置 (LU) をサポートする通信システムが見つからなかったことを示している可能性があります。 (たとえば、 TP_STARTED で指定されたローカル LU エイリアスが正しくないか、構成されていません)。 lu_alias または mode_name が 8 文字未満の場合は、これらのフィールドに右側にスペースが入力されていることを確認する必要があります。 このエラーは、これらのパラメーターにスペースが入力されていない場合に返されます。 これは、MC_ALLOCATE 要求を満たすノードがないためです。

    MC_ALLOCATEが複数のノードで構成された Microsoft Host Integration Server Client システムのこのリターン コードを生成する場合、次の 2 つのセカンダリ リターン コードがあります。

    0xF0000001

    セカンダリ リターン コード。ノードが開始されていません。

    0xF0000002

    セカンダリ リターン コード。少なくとも 1 つのノードが開始されましたが、ローカル LU ( TP_STARTED が発行されたとき) がアクティブ・ノードに構成されていません。 この問題は、次のいずれかである可能性があります。

  • ローカル LU を持つノードが開始されていません。

  • ローカル LU が構成されていません。

    AP_CONV_FAILURE_NO_RETRY
    プライマリ リターン コード。セッション プロトコル エラーなどの永続的な条件が原因で、会話が終了しました。 システム管理者は、システム エラー ログを調べて、エラーの原因を特定する必要があります。 エラーが修正されるまで、会話を再試行しないでください。

    AP_CONV_FAILURE_RETRY
    プライマリ リターン コード。一時的なエラーが発生したため、会話が終了しました。 TP を再起動して、問題が再度発生するかどうかを確認します。 その場合、システム管理者はエラー ログを調べて、エラーの原因を特定する必要があります。

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

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

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

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

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

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

    次のリターン コードは、SEND 状態 でMC_SEND_ERROR が発行された場合にのみ生成できます。

    AP_ALLOCATION_ERROR
    主なリターン コード。APPC が会話を割り当てませんでした。 会話の状態は RESET に設定されます。

    このコードは、 MC_ALLOCATE後に発行された動詞を介して返される場合があります。

    AP_ALLOCATION_FAILURE_NO_RETRY

    セカンダリ リターン コード。構成エラーやセッション プロトコル エラーなどの永続的な条件のため、会話を割り当てることができません。 エラーを特定するには、システム管理者がエラー ログ ファイルを調べる必要があります。 エラーが修正されるまで、割り当てを再試行しないでください。

    AP_ALLOCATION_FAILURE_RETRY

    セカンダリ リターン コード。リンクエラーなどの一時的な状態のため、会話を割り当てませんでした。 エラーの理由は、システム エラー ログに記録されます。 割り当てを再試行してください。

    AP_CONVERSATION_TYPE_MISMATCH

    セカンダリ リターン コード。パートナー LU または TP は、割り当て要求で指定された会話の種類 (基本またはマップ済み) をサポートしていません。

    AP_PIP_NOT_ALLOWED

    セカンダリ リターン コード。割り当て要求で PIP データが指定されましたが、パートナー TP がこのデータを必要としないか、パートナー LU でサポートされていません。

    AP_PIP_NOT_SPECIFIED_CORRECTLY

    セカンダリ リターン コード。パートナー TP には PIP データが必要ですが、割り当て要求で PIP データが指定されていないか、パラメーターの数が正しくありません。

    AP_SECURITY_NOT_VALID

    セカンダリ リターン コード。割り当て要求で指定されたユーザー識別子またはパスワードが、パートナー LU によって受け入れられなかった。

    AP_SYNC_LEVEL_NOT_SUPPORTED

    セカンダリ リターン コード。パートナー TP は、割り当て要求で指定された sync_level (AP_NONEまたはAP_CONFIRM_SYNC_LEVEL) をサポートしていないか、 sync_level が認識されませんでした。

    AP_TP_NAME_NOT_RECOGNIZED

    セカンダリ リターン コード。パートナー LU は、割り当て要求で指定された TP 名を認識しません。

    AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

    セカンダリ リターン コード。リモート LU は、要求されたパートナー TP を開始できなかったため、割り当て要求を拒否しました。 条件は永続的です。 エラーの理由が、リモート ノードでログに記録されている可能性があります。 エラーが修正されるまで、割り当てを再試行しないでください。

    AP_TRANS_PGM_NOT_AVAIL_RETRY

    セカンダリ リターン コード。リモート LU は、要求されたパートナー TP を開始できなかったため、割り当て要求を拒否しました。 状態は一時的 (タイム アウトなど) である可能性があります。エラーの理由が、リモート ノードでログに記録されている可能性があります。 割り当てを再試行してください。

    AP_PROG_ERROR_PURGING
    主なリターン コード。RECEIVE、PENDING、PENDING_POST、CONFIRM、CONFIRM_SEND、またはCONFIRM_DEALLOCATEの状態では、パートナー TP は MC_SEND_ERRORを発行します。 送信されたが、まだ受信されていないデータは消去されます。

    AP_DEALLOC_ABEND
    主なリターン コード。次のいずれかの理由により、会話の割り当てが解除されました。

  • dealloc_type が AP_ABEND に設定された MC_DEALLOCATE 発行されたパートナー TP。

  • パートナー TP が異常終了を検出し、パートナー LU が MC_DEALLOCATE 要求を送信しました。

    次のリターン コードは、 MC_SEND_ERRORが RECEIVE 状態で発行された場合にのみ生成できます。

    AP_DEALLOC_NORMAL
    主なリターン コード。この戻りコードはエラーを示していません。

    dealloc_typeを次のいずれかに設定してMC_DEALLOCATE発行されたパートナー TP:

  • AP_FLUSH

  • メッセージ交換の同期レベルが AP_NONE として指定されたAP_SYNC_LEVEL

注釈

TP がこの動詞を発行する場合、RESET を除く任意の状態にすることができます。 err_dirを使用する場合は、会話 の状態をSEND_PENDING する必要があります。

ローカル TP は、エラー通知をパートナー TP に直ちに送信します。ローカル LU の送信バッファーに情報は保持されません。

この動詞が正常に実行されると、会話はローカル TP の SEND 状態になり、パートナー TP の RECEIVE 状態になります。

新しい状態は 、primary_rcによって決定されます。 次の表に、考えられる状態の変更の概要を示します。

primary_rc 新しい状態
AP_OK SEND
AP_ALLOCATION_ERROR RESET
AP_CONV_FAILURE_RETRY RESET
AP_CONV_FAILURE_NO_RETRY RESET
AP_DEALLOC_ABEND RESET
AP_DEALLOC_ABEND_PROG RESET
AP_DEALLOC_ABEND_SVC RESET
AP_DEALLOC_ABEND_TIMER RESET
AP_DEALLOC_NORMAL RESET
AP_PROG_ERROR_PURGING RECEIVE
AP_SVC_ERROR_PURGING RECEIVE

TP が MC_SEND_ERRORを発行したときにメッセージ交換が RECEIVE 状態の場合、受信データは APPC によって消去されます。 このデータには次が含まれます。

  • MC_SEND_DATAによって送信されるデータ。

  • リターン コード インジケーター。

  • 確認要求。

  • 割り当て解除要求。

    APPC は、受信した送信要求インジケーターを消去しません。 APPC は、消去された着信リターン コード インジケーターを他のリターン コードに置き換えます。 主なリターン コード AP_OKは、消去された次のリターン コード インジケーターを置き換えます。

    AP_PROG_ERROR_NO_TRUNC

    AP_PROG_ERROR_PURGING

    AP_PROG_ERROR_TRUNC

    AP_SVC_ERROR_NO_TRUNC

    AP_SVC_ERROR_PURGING

    AP_SVC_ERROR_TRUNC

    主なリターン コード AP_DEALLOC_NORMALは、消去された次のリターン コード インジケーターを置き換えます。

    AP_ALLOCATION_ERROR

    AP_ALLOCATION_FAILURE_NO_RETRY

    AP_ALLOCATION_FAILURE_RETRY

    AP_CONVERSATION_TYPE_MISMATCH

    AP_DEALLOC_ABEND

    AP_DEALLOC_ABEND_PROG

    AP_DEALLOC_ABEND_SVC

    AP_DEALLOC_ABEND_TIMER

    AP_PIP_NOT_ALLOWED

    AP_PIP_NOT_SPECIFIED_CORRECTLY

    AP_SECURITY_NOT_VALID

    AP_SYNC_LEVEL_NOT_SUPPORTED

    AP_TP_NAME_NOT_RECOGNIZED

    AP_TRANS_PGM_NOT_AVAIL_NO_RETRY

    AP_TRANS_PGM_NOT_AVAIL_RETRY

    会話がSEND_PENDING状態の場合、APPC は、 err_dirの値に基づいて次のリターン コードをパートナー TP に報告します。

    AP_PROG_ERROR_PURGING
    RECEIVE をerr_dirとしてMC_SEND_ERROR発行されたローカル TP。

    AP_PROG_ERROR_NO_TRUNC
    SEND をerr_dirとしてMC_SEND_ERROR発行されたローカル TP。