TP_ENDED

TP_ENDED動詞は、呼び出し元トランザクション プログラムと呼び出されたトランザクション プログラム (TP) の両方によって発行され、TP が終了していることを APPC に通知します。

Microsoft® Windows® バージョン 3.x システムの場合は、この呼び出しのブロック バージョンではなく、WinAsyncAPPC 関数を使用することが推奨されます。

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

構文

  
struct tp_ended {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned char   type;  
};   

メンバー

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

opext
指定されたパラメーター。 動詞操作拡張機能を指定します。 このフィールドは、 TP_ENDED 動詞では使用されません。

reserv2
予約済みフィールド。

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

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

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

type
指定されたパラメーター。 実行する終了の種類を指定します。 使用できる値を次に示します。

  • AP_HARDは、TP のすべてのアクティブな動詞が終了することを示します。会話で使用されているセッションが終了します。 ローカル TP とパートナー TP の両方で、会話エラーのリターン コード (マップされた会話の場合はAP_DEALLOC_ABEND、基本的な会話の場合はAP_DEALLOC_ABEND_PROG) を受け取ることができます。

  • AP_SOFTは、TP がすべてのアクティブな動詞の完了を待機することを示します。会話で使用されているセッションはアクティブなままです。

リターン コード

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

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

AP_BAD_TP_ID

セカンダリ リターン コード。APPC は 、割 り当てられた TP 識別子としてtp_idを認識しませんでした。

AP_BAD_TYPE

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

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

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

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

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

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

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

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

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

    AP_TP_BUSY
    プライマリ リターン コード。APPC が同じ TP の別の呼び出しを処理中に、ローカル TP が APPC への呼び出しを発行しました。 これは、ローカル TP に複数のスレッドがあり、複数のスレッドが同じtp_idを使用して APPC 呼び出しを発行している場合に発生する可能性 があります

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

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

解説

TP_ENDEDに応答して、APPC は TP によって使用されるリソースを解放します。 この動詞が実行されると、TP 識別子は無効になります。TP はそれ以上 APPC 会話動詞を発行できません。

TP がこの動詞を発行するときに、会話は任意の状態にすることができます。

会話が SEND 状態の場合、TP_ENDEDDEALLOCATE または MC_DEALLOCATE の関数を実行し、dealloc_type AP_FLUSH に設定します。

会話が RESET または SEND 以外の状態にある場合、 TP_ENDEDDEALLOCATE または MC_DEALLOCATE の機能を実行し、 dealloc_typeを AP_ABEND (マップされた会話の場合) またはAP_ABEND_PROG (基本的な会話の場合) に設定します。

正常に実行された後 (primary_rc がAP_OK)、APPC 状態はありません。