CNOS (セッション数の変更) 動詞は、APPC LU 6.2 セッション制限を確立します。
次の構造体では、 CNOS 動詞で使用される動詞制御ブロックについて説明します。
構文
typedef struct cnos {
unsigned short opcode;
unsigned char reserv2[2];
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned char key[8];
unsigned char lu_alias[8];
unsigned char plu_alias[8];
unsigned char fqplu_name[17];
unsigned char reserv3;
unsigned char mode_name[8];
unsigned int mode_name_select:1;
unsigned int set_negotiable:1;
unsigned int reserv4:6;
unsigned int reserv5:8;
unsigned short plu_mode_sess_lim;
unsigned short min_conwinners_source;
unsigned short min_conwinners_target;
unsigned short auto_act;
unsigned int drain_target:1;
unsigned int drain_source:1;
unsigned int responsible:1;
unsigned int reserv6:5;
unsigned int reserv7:8;
} CNOS;
Members
オペコード
指定されたパラメーター。 動詞の操作コード (AP_CNOS) を指定します。
reserv2
予約済みフィールド。
primary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定される主なリターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。
secondary_rc
返されたパラメーター。 動詞の完了時に APPC によって設定されるセカンダリ リターン コードを指定します。 有効なリターン コードは、発行された APPC 動詞によって異なります。 この動詞の有効なエラー コードについては、リターン コードを参照してください。
キー
指定されたパラメーター。 キーロック機能がセキュリティで保護されている場合は、マスター キーまたはサービス キーを ASCII で指定します。
lu_alias
指定されたパラメーター。 LU にローカルで使用される 8 バイトの ASCII 名を提供します。
plu_alias
指定されたパラメーター。 パートナー LU にローカルで使用される 8 バイトの ASCII 名を提供します。
fqplu_name
指定されたパラメーター。 ローカル ノードで plu_alias 名が定義されておらず、パートナー LU が別のノードにある場合に、EBCDIC (タイプ A) のパートナー論理ユニット (LU) 名を提供します。
mode_name
指定されたパラメーター。
mode_name_selectの値がAP_ONEされるときに使用する EBCDIC (タイプ A) モード名を指定します。
mode_name_select
指定されたパラメーター。 プログラムでセッション制限と競合勝者の極性を設定またはリセットするモード名の選択を指定します。 使用できる値は、AP_ALLまたはAP_ONEです。
set_negotiable
指定されたパラメーター。 APPC が交渉可能なセッションの上限の現在の設定を変更するかどうかを指定します。 使用できる値は、AP_YESとAP_NOです。
reserv4
6 ビットの予約済みフィールド。
reserv5
8 ビットの予約済みフィールド。
plu_mode_sess_lim
指定されたパラメーター。
set_negotiableの値が YES の場合のセッション制限を指定します。 使用できる値は 0 ~ 32767 です。
min_conwinners_source
指定されたパラメーター。 LU が競合の勝者であることが保証されるセッションの数を指定します。 使用できる値は 0 ~ 32767 です。
min_conwinners_target
指定されたパラメーター。 ターゲット LU が競合の勝者であることが保証されるセッションの最小数を指定します。 使用できる値は 0 ~ 32767 です。
auto_act
指定されたパラメーター。 APPC が自動的にアクティブ化するためのローカル LU 競合勝者セッションの数を指定します。 使用できる値は 0 ~ 32767 です。 このパラメーターを使用する前に、このトピックの「解説」セクションを参照してください。
drain_target
指定されたパラメーター。 ターゲット LU が待機 (送信) 割り当て要求をドレインできるかどうかを指定します。 使用できる値は、AP_YESとAP_NOです。
drain_source
指定されたパラメーター。 ソース LU が待機 (送信) 割り当て要求をドレインできるかどうかを指定します。 使用できる値は、AP_YESとAP_NOです。
責任のある
指定されたパラメーター。 並列セッション接続のセッション制限をリセットした結果、セッションを非アクティブ化する LU を指定します。 使用できる値は、AP_SOURCEとAP_TARGETです。
reserv6
5 ビットの予約済みフィールド。
reserv7
8 ビットの予約済みフィールド。
リターンコード
AP_OK
プライマリ リターン コード。動詞が正常に実行されました。
AP_CNOS_ACCEPTED
セカンダリ リターン コード。APPC は、指定されたとおりにセッションの制限と責任を受け入れます。
AP_CNOS_NEGOTIATED
セカンダリ リターン コード。APPC は、セッションの制限と責任をパートナー LU が交渉可能として受け入れます。 ネゴシエートできる値は次のとおりです。
plu_mode_session_limit
min_conwinners_source
min_conwinners_target
責任
drain_target
AP_ALLOCATION_ERROR
プライマリ リターン コード。APPC が会話を割り当てませんでした。 会話の状態は RESET に設定されます。
このコードは、 ALLOCATE または MC_ALLOCATE の後に発行された動詞を使用して返すことができます。
AP_ALLOCATION_FAILURE_NO_RETRY
セカンダリ リターン コード。構成エラーやセッション プロトコル エラーなどの永続的な状態のため、会話を割り当てることができません。 エラーを特定するには、システム管理者がエラー ログ ファイルを調べる必要があります。 エラーが修正されるまで、割り当てを再試行しないでください。
AP_ALLOCATION_FAILURE_RETRY
セカンダリ リターン コード。リンクエラーなどの一時的な状態のため、会話を割り当てませんでした。 エラーの理由は、システム エラー ログに記録されます。 割り当てを再試行します。
AP_CNOS_LOCAL_RACE_REJECT
プライマリ リターン コード。APPC は現在、ローカル LU によって発行された CNOS 動詞を処理しています。
AP_CNOS_PARTNER_LU_REJECT
プライマリ リターン コード。パートナー LU がローカル LU からの CNOS 要求を拒否しました。
AP_CNOS_MODE_CLOSED
セカンダリ リターン コード。パートナー LU でのローカルセッションの上限は 0 であるため、ローカル LU は 0 以外のセッション制限をネゴシエートできません。
AP_CNOS_MODE_NAME_REJECT
セカンダリ リターン コード。パートナー LU は、指定されたモード名を認識しません。
AP_CNOS_COMMAND_RACE_REJECT
セカンダリ リターン コード。ローカル LU は現在、パートナー LU によって発行された CNOS 動詞を処理しています。
AP_COMM_SUBSYSTEM_ABENDED
プライマリ リターン コード。は、次のいずれかの条件を示します。
この会話で使用されたノードで、異常終了が発生しました。
トランザクション プログラム (TP) と PU 2.1 ノード間の接続が切断されました (ローカル エリア ネットワーク エラー)。
TP コンピューターの SnaBase で、異常終了が発生しました。
システム管理者は、エラー・ログを調べて、異常終了の理由を判別する必要があります。
AP_COMM_SUBSYSTEM_NOT_LOADED
プライマリ リターン コード。動詞の処理中に必要なコンポーネントを読み込んだり終了したりできませんでした。 したがって、通信は行われませんでした。 修正措置については、システム管理者に問い合わせてください。
AP_INVALID_KEY
プライマリ リターン コード。指定されたキーが正しくありません。
AP_INVALID_VERB_SEGMENT
プライマリ リターン コード。データ セグメントの末尾を超えて拡張された VCB。
AP_PARAMETER_CHECK
プライマリ リターン コード。パラメーター エラーのため、動詞が実行されませんでした。
AP_ALL_MODE_MUST_RESET
セカンダリ リターン コード。mode_name_select パラメーターが AP_ALL を示している場合、APPC は 0 以外のセッション制限を許可しません。
AP_AUTOACT_EXCEEDS_SESSLIM
セカンダリ リターン コード。 CNOS 動詞では、 auto_act の値が plu_mode_sess_limの値より大きくなります。
AP_BAD_LU_ALIAS
セカンダリ リターン コード。APPC は、定義されているlu_aliasのうち、指定された lu_alias を見つけることができません。
AP_BAD_PARTNER_LU_ALIAS
セカンダリ リターン コード。APPC は、提供された plu_aliasを認識しませんでした。
AP_BAD_SNASVCMG_LIMITS
セカンダリ リターン コード。プログラムで、plu_mode_sess_lim、min_conwinners_source、またはmin_conwinners_targetが指定されたときに無効な設定mode_name指定しました。
AP_CHANGE_SRC_DRAINS
セカンダリ リターン コード。DRAIN_SOURCE (NO ) が指定されたモードに対して現在有効になっている場合、APPC は mode_name_select (ONE ) および drain_source (YES) を許可しません。
AP_CNOS_IMPLICIT_PARALLEL
セカンダリ リターン コード。APPC では、テンプレートで並列セッションが指定されている場合に、暗黙的なパートナー テンプレートの SNASVCMG モード以外のモードのセッション制限を変更するプログラムは許可されません。 (実際の値の多くがまだ入力されていないため、"template" という用語が使用されます)。
AP_CPSVCMG_MODE_NOT_ALLOWED
セカンダリ リターン コード。CPSVCMG という名前のモードは、非アクティブ化セッション動詞の mode_name として指定できません。
AP_EXCEEDS_MAX_ALLOWED
セカンダリ リターン コード。プログラムが CNOS 動詞を発行し、 plu_mode_sess_lim 番号と set_negotiable (AP_NO ) を指定します。
AP_MIN_GT_TOTAL
セカンダリ リターン コード。min_conwinners_sourceとmin_conwinners_targetの合計は、plu_mode_sess_limより大きい数値を指定します。
AP_MODE_CLOSED
セカンダリ リターン コード。パートナー LU でのローカルセッションの上限は 0 であるため、ローカル LU は 0 以外のセッション制限をネゴシエートできません。
AP_RESET_SNA_DRAINS
セカンダリ リターン コード。SNASVCMG では、ドレイン パラメーター値はサポートされていません。
AP_SINGLE_NOT_SRC_RESP
セカンダリ リターン コード。単一セッション の CNOS 動詞の場合、APPC では、セッションの非アクティブ化を担当するローカル (ソース) LU のみが許可されます。
AP_STACK_TOO_SMALL
プライマリ リターン コード。アプリケーションのスタック サイズが小さすぎて動詞を実行できませんでした。 アプリケーションのスタック サイズを増やします。
AP_STATE_CHECK
プライマリ リターン コード。無効な状態で発行されたため、動詞は実行されませんでした。
AP_CANT_RAISE_LIMITS
セカンダリ リターン コード。APPC では、現在制限がゼロでない限り、セッション制限を 0 以外の値に設定することはできません。
AP_LU_DETACHED
セカンダリ リターン コード。 CNOS が LU の指定を試みた前に、コマンドによってローカル LU の定義がリセットされました。
AP_SNASVCMG_RESET_NOT_ALLOWED
セカンダリ リターン コード。ローカル プログラムが SNASVCMG という名前のモードに対して CNOS 動詞を発行しようとしました。セッション制限は 0 です。
AP_UNEXPECTED_DOS_ERROR
プライマリ リターン コード。ローカル TP から APPC 動詞を処理しているときに、オペレーティング システムから APPC にエラーが返されました。 オペレーティング システムのリターン コードは、 secondary_rcを介して返されます。 Intel のバイト スワップ順に表示されます。 問題が解決しない場合は、システム管理者に問い合わせてください。
注釈
CNOS は、別名だけで LU を識別します。 ドメインで同じローカル LU エイリアスが (バックアップまたはその他の目的で) 複数回使用され、その LU エイリアスが CNOS を介して指定されている場合、動詞は意図した LU とは異なる LU に流れる可能性があります。
プログラムが最初の APPC ALLOCATE、 MC_ALLOCATE、 SEND_CONVERSATION、MC_SEND_CONVERSATION、または通信用の共通プログラミング インターフェイス ( CPI-C) を発行する前にモード セッション制限を設定するために CNOS が発行されていない場合、APPC は、特定のパートナー LU とモードの呼び出しを 割り当てる と、モード定義の値を使用して内部的にセッション制限が生成されます。
並列セッション接続の制限を設定する場合、2 つの LU はモード セッションの制限、ドレイン設定、責任値をネゴシエートします。 APPC は、ネゴシエーション中に両方の LU によって合意された設定を反映するように 、CNOS でこれらのパラメーターを更新します。 プログラムは DISPLAY を発行して、モード セッション制限のネゴシエートされた値を取得できます。
1 つのセッションの制限を設定するときに CNOS ネゴシエーションは行われません (つまり、2 つの LU はドレイン設定または責任値をネゴシエートしません)。 そのため、各ノードで 1 つのセッション モードを定義することで、単一セッション接続を使用してパートナー LU 間のモード定義パラメーター設定を調整します。
初期制限の設定の一環として、 CNOS は競合優先セッションと競合敗者セッションの保証された数 (つまり、最小) を設定し、ソース LU の競合優先セッションの自動アクティブ化数を設定します。 通常、CNOS のアクションは、ソース LU とターゲット LU の間で指定されたモード名を持つセッションのグループにのみ影響します。 または、1 つの CNOS で、パートナー LU のすべてのモードのセッション制限をリセットできます。
APPC では、後続の CNOS 動詞を発行して、一方または他方が変更されるまで、新しいモード セッション制限と競合勝者極性が適用されます。 ターゲットである LU に関係なく、ターゲット LU の API では CNOS トランザクションは表示されません。 CNOS トランザクションの結果は DISPLAY を使用して取得できます。