バージョン 4.2.5
 —  TP モニタインターフェイス  —

Natural CICS インターフェイスの機能

このドキュメントでは、Natural CICS インターフェイスの機能について説明します。

内容は以下のとおりです。


Natural CICS インターフェイス

Natural CICS インターフェイスはコマンドレベルのアセンブラで実装されるため、Natural は、CICS マルチプルリージョンオプションおよびデバッグ機能 CEDF と互換性があります。

Natural CICS インターフェイスは、セッションの初期化、ロールイン再スタート(擬似会話型モード)、端末の I/O、データベースアクセス、ABEND 処理、Natural ローカルバッファプール呼び出しと、外部サブルーチンのロード、リンク、および解放を制御します。 さらに、すべてのロール I/O 操作は Natural CICS インターフェイスから行われます。

Top of page

CICS 環境での Natural ニュークリアス

Natural ニュークリアスは、Natural のリエントラントモジュールとさまざまなサポートルーチンの組み合わせです。これらのルーチンは、サイト依存のアセンブリを必要とするソースプログラムおよびロードモジュールとして提供されます。

Natural ニュークリアスの CICS 関連のコンポーネントを以下に示します。

Top of page

CICS 環境でのシステム制御

CICS 固有の Natural 機能には、スレッドでの動的ストレージの構成、およびこれらのスレッドを処理する追加の機能が含まれているため、Natural CICS システム制御プログラムはより効率的に動的ストレージを処理することができます。

Natural CICS システム制御プログラムは、当初 CICS 環境での GETMAIN の 64 KB 制限を克服するために開発されました。 これにより、擬似会話型ユーザーに対するロールファイル I/O 操作および再配置機能を含む完全なストレージの割り当ておよび管理機能が提供されます。

CICS での Natural の擬似会話型処理機能を拡張するために、システム制御プログラムでは、スレッド(ユーザーごとに設定される連続したストレージ)を使用します。 この構造により、Natural は CICS の関与を最小限に抑えながら動的ストレージを管理することができます。

システム制御について完全に理解するには、その構造および操作に関する以下の説明を参照してください。 CICS 環境での Natural のインストール手順を開始する前に、このメカニズムをよく理解してください。

Top of page

OSCOR/GETVIS - CICS 動的ストレージまたはオペレーティングシステムストレージでの Natural コンポーネント

シナリオ 1:

単一の CICS リージョン

以下の図は、CICS 動的ストレージに存在する Natural システムのコンポーネントを示しています。 コンポーネントについては、次の項目で説明しています。

シナリオ 1 は、z/OS または z/VSE 環境において単一の CICS アプリケーションリージョンで Natural をローカルに実行する場合に適用されます。

注意:
z/OS システムに関する注意事項:この他のシナリオも実現可能です。 次の 3 つの図は、z/OS システム、CICS リージョン、Natural ロールサーバー、および Natural 認可サービスマネージャの組み合わせを示しています。

シナリオ 2:

単一の z/OS、単一の CICS リージョン、単一のロールサーバー

シナリオ 3:

単一の z/OS、複数の CICS リージョン、単一のロールサーバー、および(オプションの)認可サービスマネージャ

シナリオ 4:

複数の z/OS、複数の CICS リージョン、複数のロールサーバー/認可サービスマネージャ

上記のシナリオに必要なパラメータ設定

モジュール シナリオ 1 シナリオ 2 シナリオ 3 シナリオ 4
NTBPIBPI TYPE=SWAP、SIZE= nnn n/a n/a n/a
NCMDIRCICSPLX NO NO YES/MODE YES/MODE
NCMDIR SIPSERV NO NO/YES YES YES
NCMDIRROLLSRV NO YES YES YES
ロールサーバー

CF 構造名

n/a なし なし name
認可サービスマネージャ/SIP n/a n/a SIP スロット番号/サイズ XCF グループ名/CF 構造名

Natural CICS インターフェイスでは、256 バイトの SIP スロットサイズが必要です。

注意:
シナリオ 2、3、4 では、NCI 環境を初期化する最初の Natural のセッションで、SUBSID パラメータを対応するロールサーバーおよび/または認可サービスマネージャの値に設定する必要があります。

Top of page

CICS 環境での Natural ストレージスレッド

スレッドとは、Natural が必要とするすべてのストレージを要求する連続したストレージエリアのことです。 これは複数の Natural ユーザーで共有するストレージでも、または、31 ビットモード環境では、特定タスク専用の 16 MB 境界より上の CICS ユーザーストレージでもかまいません。

各ストレージスレッドは、Natural ユーザーにとっては "アドレススペース" と見なすことができます。 Natural ニュークリアスによって発行された各メモリ割り当て要求は、システム制御プログラムに転送され、ストレージスレッドから満たされます。

ストレージスレッドは、Natural CICS インターフェイスが初期化されるときに割り当てられます。 ストレージスレッドは、CICS リージョンまたはパーティションに割り当てられる場合には永久(共有)スレッドで、Natural CICS タスクの開始時に割り当てられる場合には排他スレッド(タスク依存のユーザーストレージ)です。

ストレージスレッドの技術は、次の理由から Natural に実装されました。

スレッドは画面 I/O ごとに所有するタスクによって解放されます。 これは会話型タスクと擬似会話型タスクの両方に当てはまります。 セッションが再開されると、ストレージが残されていない限り、つまり他のタスクによってスレッドが使用されていない限り、そのストレージは再度スレッドにロールされます。

Natural スレッド選択アルゴリズムは、ロール I/O を最小限にするためにスレッドを使用するバランスを保ちます。 つまり、スレッドが多いほど、古いデータが見つかる可能性が高くなり、ロールインを防ぐことができます。 しかし、スレッドが多いほど、実ストレージにすべてのスレッドを効率的に保存するために、オペレーティングシステムは頻繁にページングを実行する必要があります。

スレッドはサイズとタイプ、つまり永久的な共有ストレージとして事前に割り当てられているか、または GETMAIN 要求を介しているかに基づいてグループ化されます。 使用するスレッドグループの決定は、セッション初期化時に CICS トランザクションコードによって制御されます。 同一グループに属するストレージスレッドは、すべて同じサイズです。

スレッドはできるだけ小さく定義する必要があります。Natural の『ユーティリティ』ドキュメントで Natural ユーティリティ SYSTPバッファ使用統計機能も参照してください。 ただし、スレッドは最大サイズのセッションを保持できる大きさが必要です。

Natural 開発環境と実稼動環境が別にある場合は、実稼動環境では小さいスレッドを使用して(稼動要求にできるだけ速く対応するため)、開発環境では少数の大きいスレッドを使用します(Natural プログラマは通常、大きい Natural のサイズと長い "思考時間" を必要とするため)。

最初の Natural のセッションで、永久的な(共有)スレッドがすべて割り当てられます。

Top of page

CICS 環境での Natural のロール機能

永久的なストレージスレッドは複数のユーザーによって共有され、GETMAIN を介して割り当てられた大きいスレッドは、長期間保存しない方がよいため、Natural タスクによって端末 I/O ごとにスレッドが解放されます。 しかし以前は、端末 I/O が実行された後に Natural セッションを再スタートできるようにユーザーデータを保存する必要がありました。

セッションデータは、以下を使用して保存することができます。

さまざまなコンポーネントのシナリオも参照してください。 詳細については、Natural の『オペレーション』ドキュメントの「ロールサーバー」を参照してください。

Top of page

CICS ロール機能

CICS ロール機能はローカルの CICS ストレージ機能です。 これらは、CICS のメインまたは補助の一時ストレージ、またはユーザーが以前 CICS に定義した VSAM 相対レコードデータセット(RRDS)です。 これらのファイルにより、ロールアウトの発生時に Natural はユーザーの圧縮した動的ストレージを格納することができます。

スワッププールを使用する場合は、CICS ロール機能はスワッププールのバックアップ機能のみを果たします。 Natural のパフォーマンスおよび処理能力に影響するため、スワッププールを使用しないときのロール媒体の選択は非常に重要です。

すべての CICS サービス要求により、CICS システムにオーバーヘッドが発生します。 このため、ロール機能の CISIZE/レコードサイズが大きいほど、Natural セッションをロールするための CICS サービスコールが少なくなるため、CPU のオーバーヘッドは小さくなります。 一方で、CISIZE/レコードサイズが大きいと、ロール機能に割り当てられる VSAM バッファスペースも大きくなります。

ロール機能の詳細については、「パフォーマンスの考慮事項」を参照してください。

注意:
ロールサーバーを使用するときは、スワッププールおよび CICS ロール機能は利用できません。

Top of page

CICS 環境での Natural ローカルバッファプール

Natural ローカルバッファプールには、Natural モジュールが Adabas または VSAM システムファイルからロードされた後は、Natural モジュールの実行およびコピー時にすべての Natural モジュールが含まれます。

ローカルバッファプールには、Natural プログラムのロード数を最小限にするために、十分なサイズが必要です。 しかしローカルバッファプールが大きすぎると、ストレージが浪費されて、ページングのオーバーヘッドが発生する場合があります。

ローカルバッファプールは GETMAIN ストレージとして割り当てられます。つまり、CICS トランザクションサーバーのすべてのバージョンで EXEC CICS GETMAIN SHARED、z/VSE 環境の CICS/VSE では GETVIS 要求です。 パーティションまたは関連する CICS DSA で、十分なストレージを利用できる必要があります。

Natural はグローバルバッファプールでも実行できるため、ローカルバッファプールはオプションです。グローバルバッファプールは、バッチモードの Natural(z/OS および z/VSE)または TSO 環境での Natural または IMS 環境での Natural(z/OS のみ)などの他の Natural 環境と共有することができます。

Top of page

CICS 環境での Natural スワッププール

Natural スワッププールを使用すると、効率の悪いロール I/O を実行する代わりに、圧縮した Natural セッションをスレッドからメインストレージエリアに "スワップ" することができます。

スワッププールは GETMAIN ストレージとして割り当てられます。つまり、CICS トランザクションサーバーのすべてのバージョンで EXEC CICS GETMAIN SHARED、z/VSE 環境の CICS/VSE では GETVIS 要求です。 パーティションまたは関連する CICS DSA で、十分なストレージを利用できる必要があります。

スワップ管理のオプションは、Natural CICS ソースモジュール NCISCPCB で、Natural プロファイルパラメータ BPI を使用して設定します。

スワッププールのサイズ、名前、およびキャッシュサイズは、プロファイルパラメータ BPI または Natural パラメータモジュール NATPARM で対応するマクロの NTBPI を使用して指定します。つまり、NCI 環境を初期化する Natural セッションに有効な NTBPI または BPI 設定が使用されます。

スワッププールの詳細については、Natural の『オペレーション』ドキュメントの「Natural スワッププール」、および「CICS 環境での Natural スワッププールの使用」を参照してください。

z/OS システムに関する注意事項

スワッププールを使用できるのは、単一の CICS リージョンにおいて CICS 環境の Natural をローカルに実行している場合のみです。 しかし、このようなシナリオにおいても、ロールサーバーを代わりに使用する方がよい場合があります。ロールサーバーは CICS リージョンに対して非同期に実行されること、およびロールサーバーは、データスペースにおいてスワッププールより多くのロールバッファを提供できることがその理由です。 ロールサーバーを使用するときは、スワッププールおよびロール機能を CICS 環境で利用することはできません。

Top of page

CICS 一時ストレージにおける Natural CICS インターフェイスシステム制御レコード

Natural CICS インターフェイスは、GETMAIN が実行された永久的なストレージを記憶します。このストレージは、CICS のメイン一時ストレージの NCI システム制御レコードにおいて、EXEC CICS GETMAIN SHARED、または OSCOR/GETVIS ストレージに対するオペレーティングシステムの GETMAIN 要求を介して取得されたストレージです。

これらのシステム制御レコードは次の 2 つの理由から保存されます。

  1. システムリカバリ

    すべての NCI 関連のストレージは NCI システムディレクトリに連鎖されているため、システム制御レコードを使用すると、ストレージ破損の場合にはストレージチェーンを再構築することができます。

  2. NCI システムディレクトリモジュールの CICS NEWCOPY の後に古い NCI システムをクリーンアップ

    NCI システム環境の初期化時に NCI は既存のシステム制御レコードをチェックして、見つかった場合は、新しい環境をインストールする前に関連する永久的なストレージを解放します。

これらの制御レコードの CICS 一時ストレージキュー名は prefixXCR です。prefix は、Natural CICS コンポーネントに共通の接頭辞で(NCIPARM 生成パラメータ PREFIX を参照)、X は 16 進値です。以下のようになります。

x'01' NCI システムディレクトリ拡張、共有スレッド(TYPE=SHR)、および第 2 の SIR ブロックに関する情報を保持するメインシステム制御レコード(NCMDIR 生成パラメータ USERS を参照)。
x'02' ファイル入力を介して取得した NCI 共有プロファイルパラメータに関する情報を保持するパラメータシステム制御レコード(NCIPARM 生成パラメータ PRMDEST を参照)。
x'03' 潜在的なスワッププールを含む NCI 環境に属するすべてのローカルプールに関する情報を保持するプールシステム制御レコード。

重要:
NCI システム制御レコードにローカルの NCI 環境について記述されているため、これらの CICS メイン一時ストレージキューも CICS AOR に保存する必要があります。 これは、CICSPlex で Natural を実行する場合に特に当てはまります。

Top of page

NCIDIREX - システムディレクトリモジュール名の出口インターフェイス

NCIPRM マクロの DIRNAME パラメータを介して明示的に指定されていない限り、Natural CICS インターフェイスシステムディレクトリモジュールの名前は、デフォルトで接頭辞 CB になります(NCMPRM マクロの PREFIX パラメータを参照)。

NCIDIREX 出口インターフェイスは、ランタイムに Natural CICS インターフェイスのシステムディレクトリモジュールの名前を設定/変更します。 これにより、同じ NCI ドライバ/NCIPARM を使用しながら、CICS システム ID、トランザクション ID などに応じて異なるシステムディレクトリモジュールにアクセスすることで、異なる NCI 環境(スレッドグループ/スレッドサイズなど)を使用することが可能になります。

ディレクトリモジュール名の最初の 5 文字も、対応する NCI 環境と関連した CICS 一時ストレージのキュー名の一部として使用されます。 このため、CICS リージョンで複数の Natural CICS 環境を実行する場合は、関連するシステムディレクトリモジュール名は最初の 5 文字が異っている必要があります。

NCIDIREX インターフェイス出口は、標準のリンケージ規約を使用して呼び出されますが(レジスタ 13、14、15、および 1)、これに加えて、CICS サービスを呼び出す出口を有効にするために、CICS EIB および EISTG アドレスを保持しているレジスタ 4 および 5 も使用されます。

ソースモジュール XNCIDIRX には、サンプルのシステムディレクトリモジュール名の出口が含まれています。

Top of page

NCITIDEX - 端末 ID 出口インターフェイス

CICS リージョンごとに一意な 4 文字の CICS 端末 ID が、Natural CICS インターフェイスによってセッションキーの一部として使用されます(SIP サーバー、ロールサーバー、CICS 一時ストレージのキュー)。 Natural との互換性のために、Natural CICS インターフェイスでは 8 文字のフィールドを使用します。 この NCI 端末 ID は、CICS 端末 ID に CICS システム ID を追加することにより、複数の CICS リージョン間で一意にすることができます(NCMPRM マクロの UNITID パラメータを参照)。

または、NCITIDEX 端末 ID 出口インターフェイスを使用して、その NCI 端末 ID を設定することができます。 CICS のために(一時ストレージキュー名など)、NCI 端末 ID の最初の 4 文字のみが使用されます。 このため、これらの 4 文字の文字列は一意でなければなりません。

NCITIDEX 出口インターフェイスは CICS 環境のセッションマネージャにとって、同じ物理端末で実行されている複数の Natural セッションを識別するために特に重要です。

NCITIDEX 出口によって設定された端末 ID は、Natural CICS インターフェイスによって "外部的" に使用され、Natural "内部" で使用する Natural システム変数 *INIT-ID のデフォルトです (*INIT-ID システム変数は、後で NCIUIDEX/NATUEX1 ユーザー ID 出口インターフェイスによって変更することができます)。

NCITIDEX インターフェイス出口は、標準のリンケージ規約を使用して呼び出されますが(レジスタ 13、14、15、および 1)、これに加えて、CICS サービスを呼び出す出口を有効にするために、CICS EIB および EISTG アドレスを保持しているレジスタ 4 および 5 も使用されます。

ソースモジュール XNCITIDX には、サンプルの端末 ID 出口が含まれています。

制限

論理端末 ID の最初の 4 文字が物理端末と一致しない場合、一部の Natural CICS インターフェイス機能は動作しません。

この結果、次のことができなくなります。

Top of page

NCIUIDEX - ユーザー ID 出口インターフェイス

Natural の NATUEX1 ユーザー出口インターフェイスを使用すると、ユーザーが Natural を使用する権限、およびさまざまな Natural システム変数を設定する権限を与えられているかどうかを判断できます。

Natural ユーザーセッションが開始されると、NATUEX1 インターフェイス出口が標準のリンケージ規約を使用して呼び出されます(レジスタ 13、14、15、および 1)。

CICS 環境では、標準リンケージ規約は CICS サービスコールを発行し、かつ CICS コントロールブロックのアドレス可能度を取得するために十分ではありません。

そのため、Natural CICS インターフェイスでは CICS 環境における NATUEX1 インターフェイス出口としてロードモジュール NCIUEX1 を提供します。 このモジュールは CICS でアドレス可能度を設定し、NCIUIDEX インターフェイス出口を呼び出します。この方法として、標準リンケージ規約(レジスタ 13、14、15、および 1)を使用するのに加え、他のレジスタ R4(EIB)、R5(EISTG)、R6(TCTTE)で CICS 関連のアドレスを渡します。

このように、CICS 環境のアドレス可能度を必要とする要求を発行する場合は、標準の NATUEX1 インターフェイスではなく、NCIUIDEX ユーザー ID の出口インターフェイスを使用する必要があります。

ソースモジュール XNCIUIDX には、サンプルのユーザー ID 出口が含まれています。

重要:
新しい CICS リリースをインストールするたびに、NCIUIDEX インターフェイス出口を再アセンブルしてリンクする必要があります。

Top of page

Natural CICS インターフェイスのデバッグ機能

次のトピックについて説明します。

TPF パラメータの使用

対応するオプションに "1" を指定することによって、ドライバに固有のオプションに対してダイナミックパラメータ TPF=(TPF1,TPF2,TPF3,TPF4,TPF5,TPF6,TPF7,TPF8) を設定することができます。

サポートされるオプションは、以下のとおりです。

TPF1 DCI を介してではなく、TWA および CICS COMMAREA の Adabas パラメータを指定した EXEC CICS LINK を介して、Adabas リンクモジュールを起動します。

CEDF を介して Adabas 関連の問題のデバッグを有効にします。

TPF2

Natural スワッププール全体をダンプします。

このパラメータ設定では、Natural スワッププール全体が CICS トランザクションダンプに含まれます。

TPF3

Natural バッファプール全体をダンプします。

このパラメータ設定では、Natural バッファプール全体が CICS トランザクションダンプに含まれます。

注意:
通常、Natural バッファプールはダンプには必要ありません。セッションに関連するバッファプールからのすべてのオブジェクトがダンプされるからです。このため、このオプションは、バッファプールに問題がある場合のみ必要になります。

TPF4 EDITOR バッファプール全体をダンプします。

このパラメータ設定では、EDITOR バッファプールが CICS トランザクションダンプに含まれます。

TPF6 NCI で端末 I/O エラーを処理します。

このパラメータ設定では、NCI は端末 I/O エラーに関して Natural に制御を渡さずに、エラーを単独で処理します。この結果、エラーメッセージ NT06NT13 のいずれかが発生します。

TPF7 NCI システムエラーの場合に強制的に異常終了します。

このパラメータ設定では、エラーメッセージ NSxxNIxxNRxx、または NUSnnnn の場合にプログラムチェックが強制的に実行されます。 この設定は、異常終了をインターセプトするデバッグ用ツールがアクティブな場合に特に役に立ちます。 その後、エラーをオンラインで直接分析することができます。

0 を指定すると(省略可)、対応するオプションは設定されません。以下に例を挙げます。

TPF=(0,0,0,1) は、TPF=(,,,1) と同じ意味です。

非同期 Natural セッションの使用

Natural を開始するダイナミックパラメータ文字列の最初の 5 文字が ASYN, の場合、セッションが端末内かどうかに関係なく、Natural CICS インターフェイスは常に非同期 Natural セッションを設定します。

これはテスト目的の場合、特に EDF または他のデバッグ用ツールがインストールされている場合に役に立ちます。

Top of page

Natural CICS インターフェイス CICS TWA の使用

Natural トランザクションは、すべて 128 バイトの TWA サイズで定義されますが、Natural CICS インターフェイスは、CICS トランザクションワークエリア(TWA)の最初の 88 バイトだけを使用して、Natural で以下の機能を処理します。

ユーザープログラム(フロントエンド、バックエンド、呼び出された外部プログラム)で CICS TWA を利用して Natural とは別に通信を行うこともできますが、ユーザープログラムでは Natural で使用する TWA の部分を使用しないでください。このような場合は、Natural トランザクションの TWA のサイズを増加して、最初の 128 バイト以外の TWA の部分を使用することをお勧めします。

Top of page