GET_TP_PROPERTIES

GET_TP_PROPERTIES動詞は、トランザクション プログラム (TP) と現在のトランザクションの属性を返します。

次の構造体は、 GET_TP_PROPERTIES 動詞で使用される動詞制御ブロックを表します。

構文

  
struct get_tp_properties {  
    unsigned short  opcode;  
    unsigned char   opext;  
    unsigned char   reserv2;  
    unsigned short  primary_rc;  
    unsigned long   secondary_rc;  
    unsigned char   tp_id[8];  
    unsigned char   tp_name[64];  
    unsigned char   lu_alias[8];  
    unsigned char   luw_id[26];  
    unsigned char   fqlu_name[17];  
    unsigned char   reserve3[10];  
    unsigned char   user_id[10];  
    unsigned char   prot_luw_id[26];  
    unsigned char   pwd[10];  
};   

メンバー

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

opext
指定されたパラメーター。 動詞操作拡張機能を指定します。 AP_EXTD_VCB ビットが設定されている場合は、同期ポイントのサポートに使用される prot_luw_id メンバーが get_tp_properties 構造体に含まれていることを示します。 それ以外の場合、動詞制御ブロックは 、user_id メンバーの直後に終了します。

reserv2
予約済みフィールド。

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

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

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

tp_name
返されたパラメーター。 動詞を発行した TP の TP 名を指定します。 名前は 64 バイトの EBCDIC 文字列として返され、右側に EBCDIC スペースが埋め込まれます。

lu_alias
返されたパラメーター。 ローカル LU に割り当てられた別名を指定します。 右側に ASCII スペースが埋め込まれた 8 バイトの ASCII 文字列として返されます。

luw_id
返されたパラメーター。 TP が参加しているトランザクションの保護されていない論理作業単位 ID を指定します。 トランザクションには複数の TP を含めることができます。 トランザクションを開始する TP に代わって割り当てられるこの識別子を使用すると、トランザクションを構成する会話を論理的に接続できます。

luw_idは、次のフィールドを持つluw_id_overlay構造体として表すことができます。

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

元の TP の LU の完全修飾 LU 名の 1 バイト長。

luw_id.fqla_name

元の TP の LU の完全修飾名。 名前は、NETID、ピリオド、LU 名で構成される 17 バイトの EBCDIC 文字列として返されます。 名前の長さが 17 バイト未満の場合、 インスタンス 番号と シーケンス 番号は直ちに続きます。 (このため、これらの値にアクセスするには 、luw_id_overlay 構造体のフィールドを使用しないでください。これらは互換性のみを目的として提供されます)。

luw_id.instance

元の TP の LU によって一意に生成される 6 バイトの文字列。

luw_id.sequence

作業単位のセグメントを示す 2 バイトの数値。 (同期ポイントがサポートされていない場合、これは常に 1 に設定されます)。

luw_idの長さが 26 バイト未満の場合は、右側に EBCDIC スペースが埋め込まれます。

fqlu_name
返されたパラメーター。 ローカル LU の完全修飾名を指定します。 名前は、NETID、ピリオド、LU 名で構成される 17 バイトの EBCDIC 文字列として返されます。 右側に EBCDIC スペースが埋め込まれます。

reserve3
予約済みフィールド。

User_id
指定されたパラメーター。 割り当て要求で開始 TP によって提供される user_id を示します。 名前は 10 バイトの EBCDIC 文字列として指定され、右側に EBCDIC スペースが埋め込まれます。

prot_luw_id
返されたパラメーター。 会話が synclevel 同期ポイントで割り当てられた場合に TP が参加しているトランザクションの保護された論理作業単位識別子を格納します。

トランザクションには複数の TP を含めることができます。 トランザクションを開始する TP に代わって割り当てられるこの識別子を使用すると、トランザクションを構成する会話を論理的に接続できます。

prot_luw_idは、次のフィールドを持つluw_id_overlay構造体として表すことができます。

typedef struct luw_id_overlay { unsigned char fqla_name_len; unsigned char fqla_name[17]; nsigned char instance[6]; unsigned char sequence[2];} LUW_ID_OVERLAY;

luw_id.fqla_name_len

元の TP の LU の完全修飾 LU 名の 1 バイト長。

luw_id.fqla_name

元の TP の LU の完全修飾名。 名前は、NETID、ピリオド、LU 名で構成される 17 バイトの EBCDIC 文字列として返されます。 名前の長さが 17 バイト未満の場合、 インスタンス 番号と シーケンス 番号は直ちに続きます。 (このため、これらの値にアクセスするには 、luw_id_overlay 構造体のフィールドを使用しないでください。これらは互換性のためにのみ提供されます)。

luw_id.instance

元の TP の LU によって一意に生成される 6 バイトの文字列。

luw_id.sequence

作業単位のセグメントを示す 2 バイトの数値。 (同期ポイントがサポートされていない場合、これは常に 1 に設定されます)。

prot_luw_idの長さが 26 バイト未満の場合は、右側に EBCDIC スペースが埋め込まれます。

pwd
指定されたパラメーター。 割り当て要求の開始 TP の user_id のパスワードを格納します。 パスワードは 10 バイトの EBCDIC 文字列として指定され、右側に EBCDIC スペースが埋め込まれます。

リターン コード

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

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

AP_BAD_TP_ID

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

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

解説

この動詞は仕様の会話ではなく TP に関連しているため、TP は任意の状態で動詞を発行できます。 状態の変更はありません。

luw_id メンバーには、fqla_name_lenのフィールド (TP を起点とする LU の完全修飾 LU 名の長さ)、fqla_name (TP を起点とする LU の完全修飾名)、インスタンス (TP を起点とする LU によって一意に生成される)、およびシーケンス (常に 1 に設定され、作業単位のセグメントを示します) が含まれます。