SET_TP_PROPERTIES
SET_TP_PROPERTIES動詞を使用すると、トランザクション プログラム (TP) は、LUWID を指定することによって、その論理作業単位識別子 (LUWID) を既存の値に設定したり、SNA サーバーに新しい値を生成して使用するように要求したりできます。 LUWID が SNA サーバーによって生成されると、一意であることが保証されます。 この動詞は、同期ポイントのサポートが有効になっている場合にのみ使用されます。
次の構造体では、 SET_TP_PROPERTIES 動詞で使用される動詞制御ブロック (VCB) について説明します。
構文
struct set_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 set_prot_id;
unsigned char new_prot_id;
unsigned char prot_id[26];
unsigned char set_unprot_id;
unsigned char new_unprot_id;
unsigned char unprot_id[26];
unsigned char set_user_id;
unsigned char reserv3;
unsigned char user_id[10];
unsigned char reserv4[10];
};
メンバー
opcode
指定されたパラメーター。 動詞操作コード (AP_SET_TP_PROPERTIES) を指定します。
opext
指定されたパラメーター。 動詞操作拡張機能を指定します。 AP_EXTD_VCB ビットは、 set_tp_properties 構造に同期ポイントのサポートが必要であることを示すように設定する必要があります。
reserv2
予約済みフィールド。
primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるプライマリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。
secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラーコードについては、「リターン コード」を参照してください。
tp_id
指定されたパラメーター。 ローカル TP を識別します。 このパラメーターの値は、呼び出し元の TP の TP_STARTED または呼び出された TP のRECEIVE_ALLOCATE によって返されました。
set_prot_id
指定されたパラメーター。 prot_id メンバーを変更する必要があるかどうかを示します。 有効な値は、AP_YESまたはAP_NOです。
new_prot_id
指定されたパラメーター。 Microsoft® Host Integration Server で、指定された prot_id LUWID メンバーを使用するか、新しい LUWID を作成するかを示します。 有効な値は、AP_YES (新しい LUWID の作成) またはAP_NO (指定された LUWID を使用) です。
prot_id
このメンバーは、TP が参加しているトランザクションの保護された作業単位識別子です。 set_prot_idがAP_NO場合は無視されます。 new_unprot_idがAP_NOの場合は指定されたパラメーター、new_unprot_idがAP_YES場合は返されるパラメーターです。
トランザクションには複数の TP を含めることができます。 トランザクションを開始する TP に代わって割り当てられるこの識別子を使用すると、トランザクションを構成する会話を論理的に接続できます。
prot_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 スペースが埋め込まれます。
set_unprot_id
指定されたパラメーター。 unprot_id メンバーを変更する必要があるかどうかを示します。 有効な値は、AP_YESまたはAP_NOです。
new_unprot_id
指定されたパラメーター。 ホスト統合サーバーで、指定された unprot_id LUWID メンバーを使用するか、新しい LUWID を作成するかを示します。 有効な値は、AP_YES (新しい LUWID の作成) またはAP_NO (指定された LUWID を使用) です。
unprot_id
このメンバーは、TP が参加しているトランザクションの保護されていない論理作業単位 ID です。 set_unprot_idがAP_NO場合は無視されます。 new_unprot_idがAP_NOの場合は指定されたパラメーター、new_unprot_idがAP_YES場合は返されるパラメーターです。
トランザクションには複数の TP を含めることができます。 トランザクションを開始する TP に代わって割り当てられるこの識別子を使用すると、トランザクションを構成する会話を論理的に接続できます。
prot_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 スペースが埋め込まれます。
set_user_id
指定されたパラメーター。 user_id メンバーを変更するかどうかを示します。 有効な値は、AP_YESまたはAP_NOです。
reserve3
予約済みフィールド。
User_id
指定されたパラメーター。 割り当て 要求で開始 TP によって使用されるuser_idを示します。 名前は 10 バイトの EBCDIC 文字列で、右側に EBCDIC スペースが埋め込まれます。 set_user_idがAP_NO場合、このパラメーターは無視されます。
reserve4
予約済みフィールド。
リターン コード
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 は任意の状態で動詞を発行できます。 状態の変更はありません。
prot_idメンバーとunprot_id メンバーには、fqla_name_lenのフィールド (TP を起点とする LU の完全修飾 LU 名の長さ)、fqla_name (TP を発生させる LU の完全修飾名)、インスタンス (TP を発生させる LU によって一意に生成される)、およびシーケンス (常に 1 に設定され、作業単位のセグメントを示す) が含まれます。
保護された LUWID が変更されたときに、新しい LUWID PS ヘッダーをパートナー同期ポイント サポートに送信するのは、アプリケーション (同期ポイント サポート コンポーネント) の責任です。 同様に、新しい LUWID PS ヘッダーを受信すると、アプリケーションは SET_TP_PROPERTIES 動詞を発行して LU に通知する必要があります。