次の方法で共有


SEND_CONVERSATION

SEND_CONVERSATION動詞は、ローカル論理ユニット (LU) とパートナー LU の間でセッションを割り当て、セッション上のデータを送信してから、セッションの割り当てを解除します。

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

構文

  
struct send_conversation {  
    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       reserv3[8];  
    unsigned char       rtn_ctl;  
    unsigned char       reserv4;  
    unsigned long       conv_group_id;  
    unsigned long       sense_data;  
    unsigned char       plu_alias[8];  
    unsigned char       mode_name[8];  
    unsigned char       tp_name[64];  
    unsigned char       security;  
    unsigned char       reserv6[11];  
    unsigned char       pwd[10];  
    unsigned char       user_id[10];  
    unsigned short      pip_dlen;  
    unsigned char FAR * pip_dptr;  
    unsigned char       reserv6;  
    unsigned char       fqplu_name[17];  
    unsigned char       reserv7[8];  
    unsigned short      dlen;  
    unsigned char FAR * dptr;  
};   

メンバー

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

opext
指定されたパラメーター。 動詞演算拡張機能 (AP_BASIC_CONVERSATION) を指定します。

reserv2
予約済みフィールド。

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

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

tp_id
指定されたパラメーター。 ローカル トランザクション プログラム (TP) を識別します。 このパラメーターの値は 、TP_STARTEDによって返されました。

conv_id
指定されたパラメーター。 会話識別子を提供します。

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

rtn_ctl
指定されたパラメーター。 APPC が会話に割り当てるセッションを選択する方法と、ローカル LU がローカル TP に制御を返すタイミングを指定します。 使用できる値は次のとおりです。

  • AP_IMMEDIATEは、競合の勝者セッションがすぐに使用可能な場合に LU が割り当て、制御を TP に返すように指定します。

  • AP_WHEN_SESSION_ALLOCATEDは、セッションを割り当てるか、このトピックの「リターン コード」で説明されているエラーのいずれかを検出するまで、LU が TP に制御を戻さないことを指定します。 セッション制限がゼロの場合、LU は制御を直ちに戻します。 セッションが使用できない場合、TP はセッションを待機します。

  • AP_WHEN_SESSION_FREEは、LU が競合優先セッションまたは競合敗者セッションを割り当てる (使用可能またはアクティブ化できる場合) ことを指定し、TP に制御を戻します。 エラーが発生した場合 (このトピックのリターン コードの説明に従って)、呼び出しは 、primary_rc フィールドと secondary_rc フィールドのエラーと共に直ちに返されます。

  • AP_WHEN_CONWINNER_ALLOCは、競合の勝者セッションを割り当てるか、このトピックの「リターン コード」で説明されているエラーの 1 つを検出するまで、LU が制御を返さないことを指定します。 セッション制限がゼロの場合、LU は制御を直ちに戻します。 セッションが使用できない場合、TP はセッションを待機します。

  • AP_WHEN_CONV_GROUP_ALLOCは、 conv_group_idで指定 されたセッションを割り当てるか、このトピックの「リターン コード」で説明されているいずれかのエラーが発生するまで、LU が TP に制御を戻さないことを指定します。 セッションが使用できない場合、TP はセッションが解放されるまで待機します。

    conv_group_id
    指定された/返されるパラメーター。 rtn_ctlがWHEN_CONV_GROUP_ALLOCされ、セッションの割り当て元となる会話グループの ID を指定するときに、指定されたパラメーターとして使用されます。 rtn_ctlが別の値を指定し、primary_rcがAP_OK場合、これは戻り値です。 このパラメーターの目的は、同じセッションが再割り当てされることの保証を TP に提供することです。そのため、セッションで行われる会話は、開始されたのと同じ順序で行われます。

    sense_data
    返されたパラメーター。 プライマリ リターン コードとセカンダリ リターン コードが割り当てエラー (再試行または再試行なし) を示している場合は、SNA 定義のセンス コードが返されます。

    plu_alias
    指定されたパラメーター。 パートナー LU がローカル TP に認識されるエイリアスを指定します。 このパラメーターは、構成時に確立されたパートナー LU の名前と一致する必要があります。 このパラメーターは、次を含む 8 バイト型の G ASCII 文字セットです。

  • 大文字

  • 数字 0 ~ 9

  • スペース

  • 特殊文字 $、#、%、および@

    このパラメーターの値が 8 バイト未満の場合は、右側に ASCII スペース (0x20) を埋め込みます。

    mode_name
    指定されたパラメーター。 構成時に定義されたネットワーク特性のセットの名前を指定します。 このパラメーターは、構成時にパートナー LU に関連付けられているモードの名前と一致する必要があります。

    パラメーターは 8 バイトの EBCDIC 文字ストリングです。 これは、すべての EBCDIC スペースを含む、タイプ A EBCDIC 文字セットの文字で構成できます。 これらの文字は次のとおりです。

  • 大文字

  • 数字 0 ~ 9

  • 特殊文字 $、#、および@

    文字列の最初の文字は、大文字または特殊文字である必要があります。

    基本的な会話で SNASVCMG という名前 (APPC によって内部的に使用される予約モード名) を使用することはお勧めしません。

    tp_name
    指定されたパラメーター。 呼び出された TP の名前を指定します。 呼び出 元の TP で ALLOCATE によって指定されたtp_nameの値は、呼び出された TP のRECEIVE_ALLOCATE によって指定された tp_name の値と一致する必要があります。

    このパラメーターは、64 バイトの大文字と小文字を区別する EBCDIC 文字列です。 このパラメーターは、AE EBCDIC 文字セット型の文字で構成できます。 これらの文字は次のとおりです。

  • 大文字と小文字

  • 数字 0 ~ 9

  • 特殊文字 $、#、@、ピリオド (.)

    TP 名が 64 バイト未満の場合は、EBCDIC スペース (0x40) を使用して右側に埋め込みます。

    サービス TP に名前を付けるための SNA 規則は、最大 4 文字です。 最初の文字は、0x00と0x3Fの間の 16 進数のバイトです。 その他の文字は、EBCDIC AE 文字セットからの文字です。

    セキュリティ
    指定されたパラメーター。 呼び出された TP へのアクセスを検証するためにパートナー LU が必要とする情報を指定します。

  • AP_NONEは、呼び出された TP で会話セキュリティが使用されていないことを指定します。

  • AP_PGMは、呼び出された TP が会話セキュリティを使用し、ユーザー識別子とパスワードを必要とすることを指定します。 この情報を指定するには 、user_idpwd を使用します。

  • AP_SAMEは、有効なユーザー ID とパスワードで呼び出された呼び出された TP が別の TP を呼び出すように指定します。

    たとえば、TP A が有効なユーザー識別子とパスワードを使用して TP B を呼び出し、TP B が TP C を呼び出すとします。TP B がAP_SAME値を指定した場合、APPC は TP A からのユーザー ID と既に検証済みのインジケーターを TP C の LU を送信します。 このインジケーターは、TP C にパスワードを要求しないことを示します (TP C が既に検証済みのインジケーターを受け入れるように構成されている場合)。

    pwd
    指定されたパラメーター。 user_idに関連付けられているパスワードを指定 します。 このパラメーターは、セキュリティ パラメーターが AP_PGM に設定されていて、構成中に確立された user_id のパスワードと一致する必要がある場合にのみ必要です。

    このパラメーターは、大文字と小文字を区別する 10 バイトの EBCDIC 文字列です。 AE EBCDIC 文字セットの文字で構成できます。 これらの文字は次のとおりです。

  • 大文字と小文字

  • 数字 0 ~ 9

  • 特殊文字 $、#、@、ピリオド (.)

    パスワードが 10 バイト未満の場合は、EBCDIC スペース (0x40) を使用して右側に埋め込みます。

    user_id
    指定されたパラメーター。 パートナー TP にアクセスするために必要なユーザー識別子を指定します。 このパラメーターは、セキュリティ パラメーターが AP_PGM に設定されていて、パートナー TP 用に構成されているいずれかのユーザー識別子と一致する必要がある場合にのみ必要です。

    パラメーターは、AE EBCDIC 文字セット型の文字で構成できます。 これらの文字は次のとおりです。

  • 大文字と小文字

  • 数字 0 ~ 9

  • 特殊文字 $、#、@、ピリオド (.)

    ユーザー ID が 10 バイト未満の場合は、EBCDIC スペース (0x40) を使用して右側に埋め込みます。

    pip_dlen
    指定されたパラメーター。 パートナー TP に渡される PIP の長さを指定します。 このパラメーターの範囲は 0 から 32767 です。

    pip_dptr
    指定されたパラメーター。 PIP データを含むバッファーのアドレスを指定します。 このパラメーターは 、pip_dlen が 0 より大きい場合にのみ使用します。

    PIP データは、パートナー TP またはリモート オペレーティング システムで必要な初期化パラメーターまたは環境セットアップ情報で構成できます。 PIP データは GDS 形式に従う必要があります。 詳細については、IBM SNA マニュアルを参照してください。

    Microsoft Windows オペレーティング システムの場合、データ バッファーは静的データ領域またはグローバルに割り当てられた領域に配置できます。

    fqplu_name
    指定されたパラメーター。 ローカル LU の完全修飾名を指定します。 このパラメーターは、リモート・ノードで定義されているローカル LU の完全修飾名と一致している必要があります。 このパラメーターは、ネットワーク名 (NETID) とパートナー LU の LU 名である 2 つのタイプ A EBCDIC 文字ストリング (それぞれ最大 8 文字) で構成されます。 名前は EBCDIC ピリオド (.) で区切られています。 NETID は省略できます。この場合、ピリオドも省略する必要があります。

    plu_aliasが指定されていない場合は、この名前を指定する必要があります。

    型 A EBCDIC 文字には次のものが含まれます。

  • 大文字

  • 数字 0 ~ 9

  • 特殊文字 $、#、および@

    このパラメーターの値が 17 バイト未満の場合は、EBCDIC スペース (0x40) で右側に埋め込みます。

    dlen
    指定されたパラメーター。 ローカル LU の送信バッファーに格納されるデータのバイト数を指定します。 このパラメーターの範囲は 0 から 65535 です。

    dptr
    指定されたパラメーター。 ローカル LU の送信バッファーに格納されるデータを含むバッファーのアドレスを指定します。

    Windows オペレーティング システムの場合、データ バッファーは静的データ領域またはグローバルに割り当てられた領域に配置できます。 データ バッファーは、この領域内に完全に収まる必要があります。

リターン コード

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

AP_UNSUCCESSFUL
プライマリ リターン コード。指定されたパラメーター rtn_ctl コントロールの TP (AP_IMMEDIATE) への即時の戻り値を指定し、ローカル LU に使用可能な競合勝者セッションがありませんでした。

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

AP_BAD_RETURN_CONTROL

セカンダリ リターン コード。 rtn_ctl に指定された値が無効です。

AP_BAD_SECURITY

セカンダリ リターン コード。 セキュリティ に指定された値が無効でした。

AP_BAD_TP_ID

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

AP_PIP_LEN_INCORRECT

セカンダリ リターン コード。 pip_dlen の値が 32767 より大きかった。

AP_UNKNOWN_PARTNER_MODE

セカンダリ リターン コード。 mode_name に指定された値が無効です。

AP_BAD_PARTNER_LU_ALIAS

セカンダリ リターン コード。APPC は、提供された partner_lu_aliasを認識しませんでした。

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

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

AP_ALLOCATION_FAILURE_NO_RETRY

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

AP_ALLOCATION_FAILURE_RETRY

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

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

  • この会話で使用されたノードで、異常終了が発生しました。

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

  • TP のコンピューターの SnaBase で、異常終了が発生しました。

    システム管理者は、エラー・ログを調べて、異常終了の理由を判別する必要があります。

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

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

    ALLOCATE が複数のノードで構成された Host Integration Server クライアント システムに対してこのリターン コードを生成する場合、次の 2 つのセカンダリ リターン コードがあります。

    0xF0000001

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

    0xF0000002

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

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

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

    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 のバイト スワップ順に表示されます。 問題が解決しない場合は、システム管理者に問い合わせてください。

注釈

この動詞は、リモート TP との会話全体を実行するために、呼び出し元 TP によって発行されます。 リモート TP が会話の開始またはデータを拒否した場合、呼び出し元の TP は拒否の通知を受け取りません。

TP がこの動詞を発行すると、会話状態は RESET になります。 状態の変更はありません。

SEND_CONVERSATIONのいくつかのパラメーターは、EBCDIC または ASCII 文字列です。 TP は CSV CONVERT を使用して、文字列を 1 つの文字セットから他方の文字セットに変換できます。

通常、 mode_name の値は、呼び出された TP のノード用に構成され、パートナー LU との構成中に関連付けられているモードの名前と一致する必要があります。 呼び出された TP のノード上のパートナー LU に関連付けられているモードのいずれかが暗黙的モードの場合、パートナー LU に関連付けられているモード名が mode_nameの値と一致しない場合、2 つの LU 間で確立されたセッションは暗黙的モードになります。