6.2.1 プロセス監視の概要
TPBrokerでは,運用支援機能の一つとして,プロセス監視機能を提供しています。TPBrokerのプロセス監視機能には四つの方法があります。
プロセス監視の内容はプロセス監視定義ファイルで設定します。詳細は,「8.2 プロセス監視定義の詳細」を参照してください。
ここでは,すべてのプロセス監視方法に共通な機能を説明した上で,それぞれのプロセス監視方法について説明します。
- 〈この項の構成〉
(1) プロセス監視の共通機能
TPBrokerでは,プロセス監視として四つの方法を提供しています。四つの方法に共通な機能を次の表に示します。
項目 |
説明 |
---|---|
監視対象となるプロセス |
アプリケーションプログラム,リソースマネージャ,OTSやORBのデーモンなど |
最大監視対象プロセス数 |
運用定義/ADM/max_process_numに設定された数 |
異常が発生した場合の処置 |
|
(3) 監視対象プロセスの出力情報
- (UNIX)
-
監視対象プロセスの標準出力および標準エラー出力は自動的にファイルに切り替わります。出力先は,$ADMSPOOL/log/stdlog1およびstdlog2です。環境変数ADMSPOOLが未設定の場合は,$TPDIR/spool/log/stdlog1およびstdlog2となります。
- (Windows)
-
監視対象プロセスの標準出力および標準エラー出力は運用定義/ADM/set_redirect_modeの設定値によってファイルに切り替わります。出力先は運用定義/ADM/set_redirect_filenameに従います。
ただし,C++のAPIによるプロセス監視の場合は,監視対象プロセスの標準出力および標準エラー出力はファイルに切り替わることはありません。
監視対象プロセスの出力情報の注意事項を次に示します。
-
監視対象プロセスの標準出力および標準エラー出力は,パイプを経由してファイルに出力されます。パイプに対して高負荷での書き込みばかりが発生するとメッセージが破棄されることがあります。
-
アプリケーションプログラムからprintfなどストリームを使用した出力を行う場合,出力前に出力ストリームバッファを切るか,出力後にストリームをフラッシュしてください。この処理を行わない場合,出力内容がファイルに反映されないことがあります。
-
Windows版の場合,監視対象プロセスの標準出力および標準エラー出力メッセージは,admtee.exeコマンドプロセスを経由して指定されたファイルに出力されます。そのため,オンライン中にadmtee.exeプロセスが異常終了した場合,監視対象プロセスの標準出力および標準エラー出力メッセージは,ファイルに出力されなくなります。このような場合には,サービス「TPBroker」を停止し,再開始してください。
-
Windows版の場合,運用定義/ADM/set_redirect_filenameに設定されたファイルのオープン処理に失敗した場合(ディレクトリが存在しないなど),監視対象プロセスの標準出力および標準エラー出力先ファイルとして%ADMSPOOL%\log\stdlog1と%ADMSPOOL%\log\stdlog2が作成されます。
(4) 監視対象プロセスのカレントディレクトリ
(a) TPBrokerの監視対象プロセスのカレントディレクトリの設定
TPBrokerの監視対象プロセスのカレントディレクトリを次のように変更します。
-
環境変数ADMSPOOLが設定済みの場合
$ADMSPOOL/tmp/home/"識別子"
-
環境変数ADMSPOOLが未設定の場合
$TPDIR/spool/tmp/home/"識別子"
- (UNIX)
-
監視対象プロセスがcoreを出力して異常終了した場合の,coreファイルの退避ディレクトリを次のようにします。
-
環境変数ADMSPOOLが設定済みの場合
$ADMSPOOL/errinfo/save
-
環境変数ADMSPOOLが未設定の場合
$TPDIR/spool/errinfo/save
監視対象プロセスのcoreファイルは"識別子.N"という名称になります。ここでNは1から始まる通番で,三つまで退避します。通番が小さいほど,新しいcoreファイルとなります。ただし,この機能はcoreファイル名称が"core"である場合に限られます。
- 例
-
識別子が「OSAgent」の場合(環境変数ADMSPOOLには/opt/TPBrokerV5/admspoolが設定されているものとする)
-
監視対象プロセスのカレントディレクトリ
/opt/TPBrokerV5/admspool/tmp/home/OSAgent
-
監視対象プロセスのcoreファイルの退避ディレクトリ
/opt/TPBrokerV5/admspool/errinfo/save
-
監視対象プロセスの退避したcoreファイルの名称
OSAgent.1,OSAgent.2,OSAgent.3
-
-
(b) 監視対象プロセスのカレントディレクトリが作成/削除されるタイミング
-
admsetup -c入力時
$ADMSPOOL/tmp/homeおよび$ADMSPOOL/errinfo/saveを作成します。
(UNIX)owner = root, group = sys, パーミッション = 777
-
admsetup -d入力時
$ADMSPOOL/tmp/homeおよび$ADMSPOOL/errinfo/saveを削除します。
-
監視対象プロセスの起動時
各プロセスのカレントディレクトリが作成されます。カレントディレクトリが作成できない場合,またはカレントディレクトリを移動できない場合は$ADMSPOOLがカレントディレクトリになります。
-
ADMデーモンの起動時
前回のセションで作成した各監視対象プロセスのカレントディレクトリを削除します。
(5) 作業ディレクトリの自動退避
TPBrokerのプロセス監視機能は,環境変数ADMSPOOLで設定された作業ディレクトリを使用します。
TPBrokerのプロセス監視機能が運用中に異常終了した場合,次回起動時に自動的に前回使用した作業ディレクトリを退避します。退避するディレクトリ名は$ADMSPOOL_logNです。ここでNは1,2,...,Nとなり,最大値は運用定義/ADM/backup_countで設定された値になります。
例えば,環境変数ADMSPOOLに/opt/TPBrokerV5/admspoolを指定していた場合,退避ディレクトリは/opt/TPBrokerV5/admspool_log1になります。
(6) プロセスのプロパティ設定
UNIX版のTPBrokerでは,監視プロセスのプロパティ設定について,次の処理を行います。
(7) ネットワークドライブアクセスに関する注意事項
Windows版の場合,Windowsの仕様により,サービスから起動されるプログラムからは,ネットワークドライブのアクセスに制限がありますので注意願います。
-
運用支援機能のプロセス監視定義に指定するプロセス名およびコマンド名は,ネットワークドライブ上のコマンドやプロセスを指定できません。
-
運用支援機能は,サービスから起動していますので,運用支援機能から起動されたプログラムは,ネットワークドライブにアクセスすることができません。各プログラムはネットワークドライブをアクセスしないでください。
-
ORB機能で使用する環境変数やプロパティにネットワークドライブまたはネットワークドライブ上のファイルを指定しないでください。