バッファプールモニタ(NATBPMON)の使用

このドキュメントでは、次のトピックについて説明します。

Natural バッファプール」も参照してください。ここでは、バッファプールに関する全般的な情報と、バッファプールの起動方法について説明しています。

注意:
このユーティリティを使用すると、バッファプールの他のユーザーの作業に有害な影響を与える可能性があるため、通常、このユーティリティにアクセスできるユーザーを限定する必要があります。

NATBPMON ユーティリティの呼び出し

NATBPMON ユーティリティは、デフォルトのバッファプール NATBP または別の既存のバッファプールのいずれかに対して呼び出すことができます。

Start of instruction setNATBPMON ユーティリティを呼び出すには

  1. デフォルトのバッファプール NATBP を使用する場合は、コマンド行に次のコマンドを入力します。

    NATBPMON

    または:
    別のバッファプールを使用する場合は、コマンド行に次のコマンドを入力します。

    NATBPMON BP=buffer-pool-name

    次のプロンプトが表示されます。

    NATBPMON>

NATBPMON コマンド

NATBPMON プロンプトでは、次のコマンドを入力できます。

Command 説明
CLEAR これは ZERO コマンドと同様です。
CORPSES コープスのリストを表示します。コープスとは、削除されたものの、削除が行われた時点でバッファプールで使用されていたオブジェクトです。このオブジェクトは使用されなくなると、自動的にコープスのリストから消えます。

注意:
DIR コマンドとともに表示される列 cusr は、オブジェクトが使用されているかどうかを示します。

DELETE {pattern|[*]} オブジェクトをバッファプールから削除します。アスタリスク(*)を使用することで、すべてのオブジェクトをバッファプールから削除できます。パターンを使用してオブジェクトのコレクションを指定します。これは、ワイルドカードを含むファイルのクラスを指定できる最新のオペレーティングシステムと同様です。詳細については、「パターンの指定」を参照してください。
DIR {pattern|[*]} バッファプール内のすべてのオブジェクトを含むディレクトリを表示します。詳細については、セクション「パターンの指定」および「バッファプール内のオブジェクトの表示」を参照してください。
DUMP エラー解析に使用します。

重要:
Software AG サポートから要求された場合を除き、このコマンドを使用しないでください。

EXIT NATBPMON ユーティリティを終了します。
FIN NATBPMON ユーティリティを終了します。これは EXIT コマンドと同様です。
HELP NATBPMON ユーティリティで使用可能なすべてのコマンドのリストを表示します。
IPCRM バッファプールに割り当てられたリソースを解放します。このコマンドは、アクティブなユーザーがいない場合に、SHUTDOWN コマンドの後にのみ使用する必要があります。
KILL n 指定したバッファプールユーザーを強制終了します。n は"強制終了"するユーザーの名前です。この番号は、WHO コマンドで表示されるインデックス番号に対応します。
PARAM バッファプール設定を表示します。詳細については、「バッファプールの設定の表示」を参照してください。
QUIT NATBPMON ユーティリティを終了します。これは EXIT コマンドと同様です。
SHUTDOWN [FORCE [grace-period]] オプション FORCE を指定しない:バッファプールをシャットダウンします。このコマンドが発行されると、新しいプロセスでバッファプールを使用できなくなります。NATBPMON ユーティリティは、シャットダウンステータスが "保留中" のバッファプールで実行できます。この場合、NATBPMON ユーティリティのすべてのコマンドを使用できます。すべてのユーザーがバッファプールの使用を停止したら、IPCRM コマンドを使用してバッファプールのリソースを削除できます。

このオプション FORCE では、スーパーユーザー権限で NATBPMON を実行する必要があります。SUDO または SU でパスワードが確認され、NATBPMON への制御が与えられると、新しいセッションはすべてログインできなくなり、終了シグナル SIGTERM がすべてのアクティブな Natural セッションに送信されます。続いて、NATBPMON は、バッファプールによって使用される IPC リソースがシステムから削除されるまで、パラメータ grace-period で定義された秒数待機します。オプションのパラメータ grace-period が省略されている(または 0 に設定されている)場合、NATBPMON はすべてのプロセスがクリーンアップ処理を実行するまで待機します。このプロセスは緊急停止とみなされる場合があります。スーパーユーザー権限なしで実行された場合、アクションは実行されず、コマンドを実行する権限がないことを示すメッセージが送信されます。「バッファプールをシャットダウンして再起動する」も参照してください。

注意:
シャットダウン後にバッファプールを起動するには、NATBPSRV ユーティリティを使用します。

STATUS バッファプールに関する統計情報が表示されます。詳細については、「バッファプールに関する統計情報」を参照してください。
SWAP 読み取り専用バッファプールでのみ使用できます。読み取り専用バッファプールを"廃止"としてタグ付けします。このようなバッファプールに接続されたすべての Natural セッションは、そのバッファプールから切断され、代替のバッファプールに接続されます。
WHO バッファプールを使用しているすべてのユーザーのリストを表示します。NATBPMON ユーティリティが各バッファプールユーザーに自動的に割り当てる番号(インデックス)およびユーザー ID、端末 ID、バッファプール(tid)を使用したプロセスのプロセス ID の統計が表示されます。
WRITE ディスクにバッファプールオブジェクトを書き込みます。インデックスとファイル名を指定するよう求められます。

注意:
DIR コマンドで表示される列 "indx" には、インデックス番号が表示されます。

ZERO STATUS コマンドで表示されるすべてのカウンタを 0 にリセットします。

バッファプール内のオブジェクトを表示する

DIR コマンドはオブジェクトのリストを表示します。このリストには次の情報が表示されます。

説明
indx NATBPMON ユーティリティがバッファプールにロードされたときにオブジェクトに自動的に割り当てられる番号。
cusr バッファプール内のオブジェクトを使用している現在のユーザー数。
pusr バッファプール内で同時にアクティブ化されたオブジェクトの最大数。
nusg バッファプールでオブジェクトがアクティブ化された回数。
g
システムファイルからバッファプールにオブジェクトをロードしているかどうかを示します。次のいずれかの値になります。
0 オブジェクトがロードされていません。
1 オブジェクトがロードされています。
size バッファプール内のオブジェクトのサイズ(バイト単位)を指定します。
gpv 生成プログラムのバージョン番号です。
key
オブジェクトに関する次の情報を示します。
D データベース ID。
F ファイル番号。
L オブジェクトが存在するライブラリです。
N オブジェクトの名前です。数字とアットマーク(@)は、現在ロードされているライブラリの FILEDIR.SAG を示します。
K オブジェクトの種類(G = 生成されたオブジェクトモジュール、S = ソース、D = FILEDIR.SAG の一部)。
T オブジェクトタイプ(K フィールドに D が表示されている場合は空白)。

DIR コマンドが発行されると、プール内のすべてのオブジェクトは、次のような表記で表示されます。

indx:    index of the element  
 cusr:    current number of concurrent users  
 pusr:    peak number of concurrent users  
 nusg:    number of usages  
 g   :    set if object is generating
 gpv :    version of generated program

indx | cusr | pusr |  nusg  |  g  |  size  |  gpv  |  key
-----+------+------+--------+-----+--------+-------+---------------------------------------------------
 1   |  0   |  1   |    4   |  0  |   920  |       |  (D=99 F=101 L="DEMO" N="SEL-MAP" K='G' T='M') 
 2   |  1   |  7   |    2   |  0  |  3096  |       |  (D=99 F=101 L="DEMO" N="EMWND" K='G' T='P') 
 3   |  4   |  9   |    4   |  0  |   604  |       |  (D=99 F=101 L="DEMO" N="HDR" K='G' T='P') 
 4   |  2   |  3   |    7   |  0  |   412  |       |  (D=99 F=101 L="RPA" N="MMUPROG1" K='G' T='P') 
 5   |  0   |  1   |    5   |  0  |   372  |       |  (D=99 F=101 L="RPA" N="MMUPROG2" K='G' T='P') 
 6   |  0   |  5   |    4   |  0  |   372  |       |  (D=99 F=101 L="RPA" N="MMUPROG3" K='G' T='P')

パターンの指定

パターンは、コマンド DIR および DELETE を使用して指定できます。このセクションの例は、DIR コマンドに該当します。

一部のオブジェクトを選択するには、一致するパターン表現を指定して、特定のキーフィールドの値を制限できます。

指定したフィールドの許容フィールド値を制限するには、次のパターン式を使用する必要があります。

name=expression

コンマで区切って複数のパターンを指定できます。

キー全体を受け入れるには、指定されたパターンがすべて対応するフィールドと一致する必要があります。

式にはワイルドカード文字 "*" および "?" を使用できます。

文字 "*" は一連の文字の有無に関係なく一致し、ワイルドカード文字 "?" はただ 1 つの個別の文字と一致します。

上記のサンプルでタイプ P のすべてのオブジェクトを選択するには、次のコマンドを使用します。

DIR T=P

デモライブラリ内のすべてのプログラムを選択するには、次のコマンドを使用します。

DIR T=P, L=DEMO

名前に M を含むすべてのオブジェクトを選択するには、次のコマンドを使用します。

DIR N=*M*

バッファプール設定の表示

PARAM コマンドにより、次の設定が表示されます。

Active since ..............: 27-JAN-2016 17:30:34, Version 8.3(837) BP version 1
Last time cleared .........: 27-JAN-2016 17:30:34

Bpid ......................: NATBP
Readonly ..................: no
Shmkey ....................: 0x18371389
Semkey ....................: 0x18371389
Memsize ...................:   20971508
Maxusers ..................:         50
Bpid バッファプール ID
Readonly 読み取りアクセスのみを許可する特殊なバッファプールであるかどうかを示します。
Shmkey バッファプールの作成またはバッファプールへの接続に使用される一意の名前です。
Semkey バッファプールメモリへのアクセスを同期するために使用される一意の名前です。
Memsize 使用可能な共有メモリのサイズです。
Maxusers バッファプールへ同時にアクセス可能なユーザーの最大数。

コンフィグレーションユーティリティ』ドキュメントの「バッファプール割り当て」を参照してください。

バッファプールに関する統計情報

STATUS コマンドにより、次の統計が表示されます。

Active since ...........: 18-JAN-2016 11:57:32, Version 8.3(837) BP version 1
Last time cleared ......: 18-JAN-2016 11:57:32
Bpid ...................: NATBP
Allocated memory (b) ...:      19142488 Max users ............:            50
Smallest allocation ....:            32 Current users ........:             1
Largest allocation .....:       4707272 Peak users ...........:            27
Free memory (b) ........:       1829032 Dead users purged ....:            15
Smallest free ..........:           136
Largest free ...........:         52952

Dormant objects ........:          1378 Smallest object (b) ..:           108
Active objects .........:             0 Largest object (b) ...:         83890
Generating objects .....:             0 Total object sizes ...:      13577572
Obsolete objects .......:             0

Attempted locates ......:     197948090 Stored objects .......:             0
Attempted fast locates .:     103794754 Loaded objects .......:       2323293
Successful fast locates.:     100344415 Activated objects ....:     190326501
Percent ................:         96.68 Aborted loads ........:        328152

Dormant objects purged .:         63731 Peak parallel activations:         10
Object reusage factor ..:         81.92
全般的な情報
Active since バッファプールが開始された日時、バッファプールのバージョン番号と内部バージョン(BP バージョン)
Last time cleared バッファプールが最後にクリアされた日時。
Bpid バッファプール ID
メモリの割り当て
Allocated memory (bytes) すべての割り当て済みメモリの合計
Smallest allocatio 割り当て済みメモリの最小容量
Largest allocation 割り当て済みメモリの最大容量
Free memory (bytes) すべての空きメモリの合計
Smallest free 連続する空きメモリの最小容量
Largest free 連続する空きメモリの最大容量
ユーザー統計
Max. users バッファプールへ同時にアクセス可能なユーザーの最大数。『コンフィグレーションユーティリティ』ドキュメントの「バッファプール割り当て」を参照してください。
Current users 現在バッファプールを使用しているユーザー数。
Peak users バッファプールを使用しているユーザーの最大数。
Dead users purged バッファプールから削除された非アクティブなユーザーの数。この数値は 0(ゼロ)に近い値であることが必要です。この数値の増分は、バッファプールユーザーのエントリ(Natural セッション)が無条件にキャンセルまたは強制終了されたことを示しています。このようなユーザーのエントリがバッファプールマネージャによって識別されるたびにこの数値が増加し、キャンセルされたセッションによってクリーンアップが実行され、バッファプールに残っている残差を除去します。
オブジェクトの使用統計
Dormant objects 使用可能であるが非アクティブなオブジェクトの数です。これらのオブジェクトはバッファプールにありますが、使用されていません。これらは後で使用でき、バッファプールユーザーに使用を要求されるとすぐにアクティブオブジェクトになります。
Active objects アクティブオブジェクトの数。これらのオブジェクトは現在 1 人以上のバッファプールユーザーによって使用されています。
Generating objects 現在バッファプールにロードされているオブジェクトの数。これらのオブジェクトは、ロード操作が完了するとすぐに使用可能になります。
Obsolete objects バッファプールから削除されるものの、まだ使用されているオブジェクトの数です。これらのオブジェクトは、CORPSES コマンドを使用して表示できます。廃止オブジェクトは、このオブジェクトをアクティブ化したすべてのユーザーがこのオブジェクトを解放するとすぐにバッファプールから削除されます。実稼働環境では、この数値は 0(ゼロ)にする必要があります。ゼロ以外の値は、NATBPMONDELETE コマンドを使用してオブジェクトが削除されたか、新しいオブジェクトが作成されたために古くなったことを示します(例えば、CATALOG コマンドのため)。
オブジェクトサイズの統計
Smallest object (bytes) バッファプール内で最小のオブジェクトのサイズ。
Largest object (bytes) バッファプール内で最大のオブジェクトのサイズ。
Total object sizes バッファプール内のすべてのオブジェクトの合計サイズ。
統計情報の検索
Attempted locates オブジェクトの検索に成功した回数と失敗した回数。この数値は、バッファプールマネージャがバッファプール内のオブジェクトの検索を要求した回数を示します。
Attempted fast locates 既知のスロットでのアクティブ化の試行回数。これは、オブジェクトの以前の場所がわかっていた場合のオブジェクトのアクティブ化の回数です。再度アクティブ化されたときに、おそらくバッファプール内の同じ場所にオブジェクトが見つかります。
Successful fast locates 成功した高速ロケートの回数。
Percent 成功した高速ロケートの割合。
オブジェクトのロード統計
Stored objects バッファプールに格納されているオブジェクトの数。これは、バッファプールに格納され、システムファイルからロードされなかったオブジェクトの数です。
Loaded objects システムファイルにロードされたオブジェクトの数。バッファプールにオブジェクトが見つからない場合は、毎回システムファイルからロードされます。この数値は、オブジェクトがバッファプールにロードされるたびに増加します。
Activated objects アクティブ化されたオブジェクトの数。アクティブ化とは、バッファプール内にあるオブジェクトを、バッファプールユーザーが "使用中" としてマークするプロセスです。
Aborted loads バッファプール内のメモリ不足のため、またはバッファプールにオブジェクトをロードするときにエラーが発生したために中断されたロード操作の回数です。この数値には顕著なばらつきがないことが必要です。
全般的なロード統計
Dormant objects purged 新しくロードされたオブジェクトのための空き領域を確保するためにバッファプールから削除された、未使用のオブジェクトの数です。
Peak parallel activations バッファプール内のいずれかのオブジェクトの並行アクティベーションの最大数です。
Object reusage factor オブジェクトが再アクティブ化された平均回数です。この数値は、バッファプールにロードされたオブジェクト数に対するオブジェクトアクティベーション数の比率です。