バージョン 4.2.5
 —  オペレーション  —

エディタバッファプール

このドキュメントでは、Software AG Editor で使用する中間メインストレージエリアであるエディタバッファプールの目的、使用、および操作について説明します。

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


エディタバッファプールの目的

エディタバッファプールは、エディタバッファ(SSIZE)の拡張と見なすことができます。 これは、Software AG Editor で論理ファイルを保持するために使用する中間メインストレージエリアです。

論理ファイルは 1 つまたは複数の論理レコードで構成され、エディタによって保持されるオブジェクトのデータ(ファイルメンバなど)を含みます。 ユーザーは複数のオブジェクトを同時に使用することができ、ユーザーごとに複数の論理ファイルを同時に存在させることができます。

論理ファイル数は(エディタワークファイルのリカバリレコードの比率と同じように)バッファプールパラメータマクロで定義されます。

エディタバッファプールは、ローカルバッファプールやグローバルバッファプール(z/OS および BS2000/OSD のみ)または補助バッファプール(EDPSIZE)として定義できます。 マルチユーザー環境(CICS、IMS/TM、UTM)の場合は、エディタバッファプールは同じリージョン(ローカルプール)または複数リージョン(グローバルプール)のどちらかのすべてのエディタユーザーによって共有されます。 CMS 環境では、バッファプールは常にローカルプールです。 グローバルバッファプールは、Com-plete 環境では SD エディタワークファイルが異なるため、Com-plete とその他のリージョンとの間では共有できません。

エディタバッファプールには、以下のさまざまな制御テーブルと多数のデータブロックが含まれます。

エリア サイズ
メインコントロールブロック 500 バイト
論理ファイルテーブル 論理ファイル当たり 20 バイト
ワークファイルテーブル レコード当たり 4 バイト
リカバリファイルテーブル レコード当たり 16 バイト
バッファプールブロックテーブル ブロック当たり 28 バイト
バッファプールブロック 下記の本文参照

バッファプールブロックのサイズはワークファイルレコードのサイズと同じで、1 つのバッファプールブロックに 1 つの論理ファイルレコードを含めることができます。

バッファプールはエディタの最初のユーザーによって初期化されます。 ウォームスタートでのバッファプールの初期化中に、すべてのリカバリレコードがチェックされてリカバリファイルテーブルが構築されます。

バッファプールにアクセスする機能は複数あります(例えば、レコードの割り当て、読み取り、書き込み、または削除の各機能)。

Top of page

フリーブロックの取得

バッファプールがいっぱいになったら、外部データセットであるエディタワークファイルにバッファプールブロックを移動して、フリーブロックを取得する必要があります。

このような場合は、エディタによってすべての論理ファイルのタイムアウト値がチェックされ、指定時間内にアクセスされていない論理ファイルが削除されます。 これにより、そのバッファプールブロックとワークファイルレコードがすべて解放され、論理ファイルが失われます。

それでも使用できるバッファプールブロックがまだない場合は、指定のタイムアウトパラメータ値(Natural の『ユーティリティ』ドキュメントの「SYSEDT ユーティリティ - エディタバッファプールサービス」の「生成パラメータ」を参照)に従って、最も古いブロックがワークファイルに移動されます。

Top of page

エディタバッファプールの初期化

初期化されていないエディタバッファプールは、Software AG Editor が初めて呼び出されたときに初期化されます。 その後、さまざまなコントロールブロックが作成されます。 バッファプールとワークファイルの初期化には 2 つモードがあります。"コールドスタート" と "ウォームスタート" です。

バッファプールコールドスタート

バッファプールコールドスタートは、エディタバッファプールサブパラメータ COLD またはエディタバッファプールサービスユーティリティ SYSEDT によってトリガされるか、自動的にトリガされます(エディタワークファイルが未フォーマットの場合)。

バッファプールコールドスタートでは、エディタバッファプールパラメータ EDBP または対応するマクロ NTEDBP の値がワークファイル制御レコードに保存され、すべてのワークファイルリカバリレコードがクリアされます。

バッファプールウォームスタート

バッファプールウォームスタートでは、バッファプールパラメータがワークファイル制御レコードから読み込まれ、すべてのワークファイルリカバリレコードが読み取られて、バッファプールにリカバリファイルテーブルが構築されます。

Top of page

エディタバッファプールの再起動

SYSEDT ユーティリティを使用してエディタバッファプールを終了することで、エディタバッファプールを非初期化状態にできます。 これにより、TP システムやグローバルバッファプールの再起動を回避できます。

バッファプールに問題があって SYSEDT を使用できない場合は、プログラム BPTERM を使用してバッファプールを終了できます。

重要:
バッファプールの再起動後に Natural セッションでエディタを使用する場合は、すべての Natural セッションを復元する必要があります。

Top of page

エディタバッファプールパラメータ

エディタバッファプールを操作するパラメータを定義するには、エディタバッファプールパラメータ EDBP、または Natural パラメータモジュール NATPARM の対応するマクロ NTEDBP が必要です。

エディタワークファイルがフォーマットされると、これらのパラメータはワークファイル制御レコードに保存され、その他のレコードはすべてクリアされます。 したがって、以前使用したワークファイルを再フォーマットすると、すべてのエディタチェックポイントとリカバリ情報が失われます。

これらのパラメータの一部は、エディタバッファプールサービスユーティリティ SYSEDT を使用して、バッファプールの実行中にダイナミックに変更できます。

Top of page

マルチユーザー環境でのバッファプールの初期化

バッファプールの初期化中に、すべてのリカバリレコードがエディタワークファイルから読み込まれます。 エディタバッファプールの初期化が完了するまで、最初のユーザーは長時間待たねばならず、タイムアウトメッセージが表示されることもあります。

このため、最初のユーザーがアクティブになる前にバッファプールの初期化をトリガする特別な Natural プログラムが用意されています。 このプログラムは、TP モニタの起動中に有効にするか、グローバルバッファプールの使用時にバッチジョブで有効にすることができます。

その後、以下のセッションパラメータを使用してセッションを開始する必要があります。

STACK=(LOGON SYSEDT,user,password;BPINIT;FIN)

CICS 環境の場合:セッションを非同期的に実行している場合は、初期化中に出力されるエラーメッセージを取得するために SENDER=CONSOLE を指定する必要があります。 ソースプログラム FRONTPLT が、PLTPI 経由で CICS 起動中に非同期 Natural セッションを開始する方法を示すサンプルプログラムとして提供されています。

Top of page