WebOTX トラブルシューティング(概要)
1 はじめに
- 本書はWebOTX実行環境を運用するための運用操作法について概要や具体的な設定項目や設定方法について記載しています。
- 対象読者
- このマニュアルはWebOTX Application Server Web Edition、Standard-J Edition、Standard Edition、Enterprise Editionを使って運用環境を構築するシステムエンジニア、日々の運用を行うオペレータを対象としています。
- 表記について
- パス名表記
- 本書ではパス名の表記については特にOSを限定しない限りセパレータはスラッシュ’/’で統一しています。Windows環境においては’\’に置き換えてください。
- 環境変数表記
- インストールディレクトリやドメインルートディレクトリなど環境によって値の異なるものについては環境変数を用いて表します。
- ${env} または $(env)で表しています。
- 例)
- ${AS_INSTALL} : インストールディレクトリ
- ${INSTANCE_ROOT}: ドメインルートディレクトリ
- 製品名表記
- 以後の説明で「WebOTX」としているものは、「WebOTX Application Server」のことをあらわします。
- コマンド操作について
- 本書中では運用操作に用いるコマンドの詳細についての説明は省略しています。コマンドの詳細は「運用管理コマンド」、「運用管理コマンドリファレンス」を参照してください。
2 障害解析
障害発生時採取する情報について説明します。
2.1 全般
障害が発生した場合、障害内容にかかわらず採取すべき情報について説明します。
- エージェントログファイル
- ${ INSTANCE_ROOT}/logsディレクトリのファイル全て
- イベントログ情報(UNIXはシスログ)
- (Windows) イベントログ(アプリケーション、システム)
- (HP-UX) /var/adm/syslog/syslog.log
- (Solaris) /var/adm/messages
- (Linux) /var/log/messages
- プロセス異常終了情報
- (Windows)
- ワトソンログ %SystemDrive%\Documents and Settings\All Users\Documents\DrWatson
- クラッシュダンプ %SystemDrive%\Documents and Settings\All Users\Documents\DrWatson\user.dmp
- (UNIX)
- coreファイル
UNIX版におけるcoreファイルの出力先は以下のようになります。
| サービス名 | プロセス名 | 出力場所 | 備考 |
| WebOTXエージェント | java (agent) | ${INSTANCE_ROOT}/config | |
| Webサーバ(Apache) | httpd | ${INSTANCE_ROOT}/ | |
| ObjectBrokerサービス | oad | ${INSTANCE_ROOT}/config | |
| namesv | ${INSTANCE_ROOT}/config | |
| cnamesv | ${INSTANCE_ROOT}/config | Enterprise Editionのみ |
| java (oadj) | ${INSTANCE_ROOT}/config | |
| ospprxy | ${INSTANCE_ROOT}/config | Enterprise Editionのみ |
| JMSサービス | java (jms) | ${INSTANCE_ROOT}/config | |
| Transactionサービス | rcssv | ${INSTANCE_ROOT}/config | Standard Edition/
Enterprise Editionのみ |
| TPシステム | iioplsn | ${AS_INSTALL}/Trnsv/logs | Standard Edition/
Enterprise Editionのみ |
| tpmonitor | ${AS_INSTALL}/Trnsv | Standard Edition/
Enterprise Editionのみ |
| THTPPJAVA2
THTPPCTL<数字>
THTPPOTS<数字>
THTPPDB<数字> |
${AS_INSTALL}/Trnsv | Standard Edition/
Enterprise Editionのみ
<数字>には9,8,7のいずれかが入ります |
| TPモニタ制御サービス | tpadmd | ${AS_INSTALL}/Trnsv | Standard Edition/
Enterprise Editionのみ |
-
WebOTX Standard Edition/Enterprise Editionでの障害を未然に防ぐために知っておきたい知識や、障害発生時の原因究明に役立つ機能について、2.1.1以降に記述しています。
2.1.1 アプリケーションプロセス異常終了に対する機能
-
WebOTX Standard Edition/Enterprise EditionではTPモニタ機能により、アプリケーションプロセスの状態を常に監視しています。アプリケーションプロセスが異常終了した場合、そのアプリケーションプロセスは自律的に復旧されます。またその際に、詳細な障害情報を記録しますので、後からの障害解析を容易に行うことができます。
2.1.1.1 異常終了の検出と自律復旧
-
アプリケーションプロセスの異常終了を検知し、そのプロセスが使用していたリソース(コネクション、共有メモリ、データベース資源)をWebOTXが解放します。さらに指定に従ってプロセスの再起動を行うことができます。これにより、障害発生後もそれ以前と同じ処理能力を維持することができます。
-
アプリケーションプロセスの異常終了が検出されると、イベントログ・シスログに以下のようなメッセージが出力されます。
異常が発生した場合はまずはイベントログ・シスログを確認してください。
-
OTXM:<システム名>::<プロセスID>: W:13:TPS15-01107 Process abnormal end. PID=[<プロセスID>], class[<プロセスグループ名>], ped[<アプリケーショングループ名>.ped]
-
プロセスグループが複数プロセスで構成される場合、その中の一つのアプリケーションプロセスが異常終了しても、他のアプリケーションプロセスは通常通り処理を行うことができます。このため、プロセスグループとしては、異常終了したアプリケーションプロセスが再起動されるまでの間もサービスの継続性を確保できます。
-
アプリケーションプロセスの再起動回数を設定することができます。プロセスの異常終了があるとこの指定に応じて再起動されます。ただし一度障害が発生した後に自動的に再起動させても同じ障害の繰り返しとなる可能性もありますので注意が必要です。また自動的に再起動させてしまうと障害が起きたことに気づかない恐れがあるので、テスト環境で使用する場合は再起動させない設定とし、本番運用では再起動する設定とすることを推奨します(統合運用管理ツールの[TPシステム]-[上限設定]-[プロセス障害時の再起動回数])。
-
C++で作成されたサーバアプリケーションの場合は、異常終了発生後にオペレーションを閉塞状態にしてクライアントから実行させないようにすることができます。アプリケーション作成者は、閉塞している間にプログラムのチェックを実施することになります。オペレーション単位で閉塞状態にすることができるので、正常動作している他のオペレーションは引き続き動作させることは可能です。閉塞されたオペレーションを呼び出すと以下のメッセージがイベントログ・シスログに出力され、問題のオペレーションは実行されません。
-
OTXM:<システム名>:<プロセスグループ名>:<プロセスID>: E:1:TPS10-03201OPERATION BLOCKED. TX-GROUP プロセスグループ名 プロセスID
-
オペレーションの閉塞に関する設定は統合運用管理ツールのプロセスグループの[スレッド制御]-[オペレーション異常終了時にオペレーションを閉塞させる]で行います。
-
なお、V5までは閉塞するのがデフォルトの設定となっていましたが、V6以降では閉塞させないのがデフォルトの設定と変わりました。
2.1.1.2 リクエスト保障
-
オペレーション実行中に何らかの障害が発生してプロセス終了となった場合、TPモニタがそのプロセスに代わりエラー応答をクライアントに返します。イベントログ・シスログにも情報を残します。キューで待っていたリクエストは、別プロセスが引き継いで処理をすることができます。他に起動中のアプリケーションプロセスがなく、かつプロセス再起動回数を使い果たした場合は別プロセスに引き継げませんが、この場合はエラー応答をクライアントアプリケーションに返すため、サーバアプリケーションの異常終了に引きずられてクライアントアプリケーションが無応答になることはありません。
クライアントアプリケーションに返却されるエラーコードの詳細は「メッセージ編」を参照してください。
2.1.1.3 障害情報記録(Java)
-
オペレーション実行中にJavaランタイム例外が発生した場合、正確にはWebOTXの基盤でJavaランタイム例外を捕捉した場合はアプリケーションプロセスを異常終了させますが、この際に捕捉した例外のスタックトレースがシステムトレースに記録されます。この情報から、Javaソースのどの行が原因で異常終了したかを特定することができます。
デフォルトでは以下の場所にアプリケーションログを出力しています。
-
${ INSTANCE_ROOT}/logs/tpsystem/(アプリケーショングループ名)/(プロセスグループ名)
なお異常終了してしまった場合はsaveディレクトリにログが移動しますのでsaveディレクトリも確認ください。
- ファイル名:
-
(プロセスグループ名).(時間をベースとした識別子).(プロセスID).log
- 例:
- 2005/07/15 10:23:53.125|001: Error: Occur exception(catch java.lang.RuntimeException) at Invoking. message=null
- java.lang.RuntimeException
- at complex.basicApObj.exceptionEnd(basicApObj.java:21)
- at complex.basicApPOA._invoke(basicApPOA.java:55)
- ・・・
2.1.1.4 障害情報記録(C++)
-
オペレーション実行中にネイティブ例外が発生した場合、正確には例外ハンドリングを行う設定(C++デフォルト)にしたアプリケーションのWebOTXの基盤でネイティブ例外を捕捉した場合は該当スレッドを閉塞させます。スレッドの残りがない場合はプロセスを終了させます。ネイティブ例外を捕捉した際はイベントログ・シスログにメッセージを出し、ネイティブ例外エラーコードも共に出力します。
-
さらにシステムトレースに記録されたライブラリロードアドレスと開発時のmapファイルを使用することにより、障害箇所を特定できる可能性があります。
例外発生時の情報はアプリケーションログに出力されます。デフォルトでは以下の場所にアプリケーションログを出力しています。
- ${ INSTANCE_ROOT}/logs/tpsystem/(アプリケーショングループ名)/(プロセスグループ名)
なお異常終了してしまった場合はsaveディレクトリにログが移動しますのでsaveディレクトリも確認ください。
- ファイル名:
- (プロセスグループ名).(時間をベースとした識別子).(プロセスID).log
- 2005/12/08 16:47:34.283|001: Error: AbortExit(exitkey=82, endkey=00).
- 2005/12/08 16:47:34.283|001: Error: Exception occurred. repositoryID=IDL:demo3:1.0 operation=AbortCall3
- 2005/12/08 16:47:34.283|001: Error: AbortExit(exitkey=82, endkey=00)(finished).
- Thu Dec 08 16:47:34 2005 TPS10-13201 TPabortによるプロセス終了 CODE:0 TX-GROUP demo3PG 11156
- Thu Dec 08 16:47:35 2005 TPS10-13201 TPabortによるプロセス終了 CODE:0 TX-GROUP demo3PG 11156
-
アプリケーションログにはアプリケーションエラーが発生した旨のエラーメッセージを出力します。これによりどのオペレーション呼び出しでエラーが発生したか特定することは可能ですが、Javaのようにスタックを出力することはできません。スタックイメージを確認するには例外ハンドルの設定を無効にし、ワトソンログ出力を有効にする必要があります。
例外ハンドルの設定は統合運用管理ツールの[TPシステム]-[例外ハンドル]-[例外ハンドルを行う]です。
2.1.1.5 異常終了時のオペレーション状態記録
-
アプリケーションプロセスが異常終了時に、実行中だった未完のオペレーションの状態がシステムトレースに記録されます。この情報から、どのオペレーション実行中に異常終了したかをオペレーション単位で絞り込むことができます。本情報がなくとも前記2.1.1.3、2.1.1.4の情報で十分な場合もありますが、2.1.1.3, 2.1.1.4で説明した機能はアプリケーションプロセス中で実行される機能であるため異常の程度によっては機能しないことがあります(例えばkillコマンドやタスクマネージャで強制終了させた場合)。これに対し、本機能はアプリケーションプロセスが実行の都度共有メモリに記録している情報を元に出力しているので、あらゆる終了に対応できます。
- [出力例]
- 以下のログは 7/15 10:19:09.703に開始したオペレーション(オペレーション名:LoopBack, インタフェース名:IDL:sample/LoopBackSample:1.0, モジュール名:loopback_jsv.jar)が実行している最中にアプリケーションプロセスが異常終了したことを示します。
- Error: The following TX execution is unfinished.
- -------------------------------------
- PID ThID TxID StartTime
- -------------------------------------
- 03761 00001 QKAAAC 7/15 10:19:09.703
- QKAAAC: LoopBack (IDL:sample/LoopBackSample:1.0;loopback_jsv.jar)
2.1.2 無応答障害に対する機能
-
Standard Edition/Enterprise Editionでは、アプリケーションプロセスが無応答や極度の遅延に陥った場
合も、それを検出し、情報を採取し、リカバリを行う機能を実装しています。
2.1.2.1 プロセス起動停止の実行時間超過の検出および全スレッドストールの検出
-
プロセス起動処理(Java VMの起動,ORB初期化など)、プロセス終了処理(ORB解放,Java VM停止など)の無応答障害をAPループ検出機能により検出し、該当アプリケーションプロセスは強制終了します。起動処理の障害で且つ再起動設定があれば再起動されます。また、次の2.1.2.2や2.1.2.3で説明する監視機能はアプリケーションプロセス中の制御スレッドで実装されていますが、この制御スレッドさえも正常に機能しないような異常状態になった場合も、APループ検出機能により障害を検出し、アプリケーションプロセスを強制終了します。タイマの設定方法は「運用編(チューニング) 2.5.2 起動・停止タイムアウト(プロセス終了)」を参照してください。
2.1.2.2 スレッド起動停止の実行時間超過の検出
-
スレッド起動処理(サーバオブジェクトや常駐オブジェクト作成)、スレッド終了処理(サーバオブジェクトや常駐オブジェクト削除)の際の無応答障害を検出してプロセスは強制終了します。起動処理の障害で且つ再起動設定があれば再起動されます。スレッド初期化タイムアウト時間はプロセスグループ単位に設定できます。タイマの設定方法は「運用編(チューニング) 2.5.2 起動・停止タイムアウト(プロセス終了)」を参照してください。
2.1.2.3 オペレーション実行時間超過の検出と自律復旧
-
サーバアプリケーションでオペレーションを実行した際の無応答障害を検出し、自律復旧させることができます。
-
実行時間上限設定を超えてもサーバアプリケーションから応答がない場合、WebOTXはアプリケーショ
ンプロセスが無応答障害に陥っていると判断し、アプリケーションプロセスを強制終了し、再起動設
定があれば再起動させます。これによりクライアントに応答が返らない事態やサーバの資源を無制限
に消費する事態を回避できます。
-
実行時間上限値はオペレーション毎に設定することができます。設定方法は「運用編(チューニング) 2.5.4 実行時間タイムアウト」を参照してください。
-
また、データベースのデッドロック等、再試行可能な障害の発生も考えられます。その場合に、そのオペレーションを自動的にやり直したり、データベースがオーバーフローしたりした場合には、更新系のサービス(オペレーション)だけを停止する等、障害発生時にきめ細かいリカバリ処理を行うこともできます。
2.1.2.4 リクエスト保証(AP応答監視タイマ)
-
AP応答監視タイマ機能によりサーバアプリケーションの無応答障害を検出し、別プロセスが異常状態のアプリケーションプロセスに成り代わってクライアントアプリケーションにエラー応答(NO_RESPONSE(3920))を返すことができます。これによりサーバアプリケーションの無応答障害が発生しても、クライアントアプリケーションは無応答状態とならずに応答を受け取ることができます。
-
AP応答監視タイマ機能はプロセスグループ毎に設定することができます。設定方法は「運用編(チューニング) 2.5.3 呼び出しタイムアウト」を参照してください。
2.1.2.5 スレッド状態表示
-
WebOTXではサーバアプリケーションの全スレッドでどのような処理が行われているかの情報を取得することができます。各スレッドの状態(IDLE状態/実行状態など)、実行中のオペレーション名、実行中オペレーションの開始時刻、接続しているクライアントアプリケーションのIPアドレスが可視化されており、各スレッドの詳細情報を確認できます。無応答障害が発生している最中にこの情報を確認することで、障害原因を絞り込むことができます。また、各スレッドのCPU時間を確認することで、CPUループを引き起こしているオペレーションを特定することもできます。
* Linux版、Solaris版では各スレッドのCPU時間を採取できません
-
また、各プロセスのCPU使用率、CPU使用時間(ユーザモード/システムモード)、メモリ使用量(仮想/物理)コンテナ状態(起動処理の進み具合)についても採取することができます。
* Linux版ではCPU情報を採取できません

2.1.2.6 障害情報記録(スタック採取)
-
無応答障害に陥っているアプリケーションプロセス(Java)のスタックトレースを採取することができます。この情報より、サーバアプリケーション中のどの箇所で無応答となっているかを特定することができます。上記の実行時間上限監視により無応答障害を検出すると、このスタックトレースを採取しAPトレースに記録します。
- 例:
- 2005/07/15 10:23:53.125|001: Error: Occur exception(catch java.lang.RuntimeException) at Invoking. message=null
- java.lang.RuntimeException
- at complex.basicApObj.exceptionEnd(basicApObj.java:21)
- at complex.basicApPOA._invoke(basicApPOA.java:55)
- ・・・
-
無応答障害発生中に、運用管理者がコマンドwostack(「運用コマンドリファレンスマニュアル」→「CORBAアプリケーション」→「wostack」)を使用することにより、任意のタイミングでスタックトレースをAPトレースに記録することも可能です。このコマンドによりアプリケーションを停止させるなどの影響はありません。
-
また、実行時間上限監視により無応答障害を検出すると、終了直前に実行中だった未完のオペレーションの状態がシステムトレース(運用編(ロギング) 2.5.1 サーバアプリケーショントレース採取)に記録されます。この情報から異常終了の原因をオペレーション単位で絞り込むことができます。
- 例:
- Error: The following TX execution is unfinished.
- -------------------------------------
- PID ThID TxID StartTime
- -------------------------------------
- 03761 00001 QKAAAC 7/15 10:19:09.703
- QKAAAC: LoopBack (IDL:sample/LoopBackSample:1.0;loopback_jsv.jar)
2.1.3 ネットワーク/クライアント障害に対する機能
2.1.3.1 通信の監視(無通信監視)
-
接続しているクライアントアプリケーションより、一定時間が経過してもオペレーション呼び出しがない場合、強制的にクライアントからの接続を切断させることができます。これにより、長時間使用されていない不必要と思われる接続が切断され、ネットワークリソースの消費を抑えることができます。設定方法は「運用編(チューニング) 2.5.5 クライアント無通信監視間隔」を参照してください。
-
また、WebOTXで提供する、コールバック用のAPIを利用すると、CORBAサーバアプリケーションがクライアント障害の発生の通知をシステムから受け取って、独自の後処理を行うことができます。

2.1.3.2 アライブチェックによる監視
-
TCPレベルのkeepalive機能を設定することにより、アライブチェックを行うことができます。これによりネットワーク障害で使用不可能となってしまった接続を検出し切断することができます。 keepalive機能自体はOSが持つ監視機能となります。WebOTXではOSのkeepalive機能使用有無のみを設定します。keepalive機能のアライブチェック間隔は各OSに依存します。WebOTXに対する設定は「クライアント接続数オーバへの対応」を参照してください。
2.1.4 スローダウン障害に対する機能
2.1.4.1 スローダウン障害検出
-
オペレーションの呼び出し時間の統計より、通常よりオペレーション実行時間が長くなっている場合、スローダウンとして検出し通知を行ないます。一般的な監視機構とは違い、オペレーションごとの閾値設定なしでスローダウン障害を検出できます。
-
スローダウン発生時は、イベントログ・シスログに以下のメッセージが出力されます。
- “OTX20110100 オペレーションzzzのスローダウンを検出しました。current:平均実行時間=xxx秒。normal:平均実行時間=www秒。プロセスグループ=vvv。 ObjectName=yyy”
- “OTX20110100 The Operation zzz get late. Average of current time is xxx s. Average of normal time is www s. The Process Group is vvv. The ObjectName is yyy“.
-
オペレーションのスローダウンを検出してから「スローダウン継続監視時間」を超えてなお、スローダウン状態が継続していると以下のメッセージを統合運用管理ツールに通知し、イベントログ/syslog,webotx_agent.log(webotx_tpmmgr.log)に出力します。
- “OTX20110200 オペレーションzzzの長期にわたるスローダウン状態を検出しました。current:平均実行時間=xxx秒。normal:平均実行時間=www秒。スローダウン継続時間=uuu分。プロセスグループ名=vvv, ObjectName=yyy”
- “OTX20110200 The Operation zzz is slow for a long time. Average of current time is xxx s. Average of normal time is www s. Duration of slow is uuu m. The Process Group is vvv. The ObjectName is yyy “
-
「長期にわたるスローダウン状態」を検出すると、メッセージ出力とともに、該当プロセスグループのスタックトレースを採取します。このAPログに出力されるスタックトレースを参照することで、スローダウンの原因を調査することができます。
-
詳しくは「運用編(TPモニタの運用操作) 2.40 運用アシスタントに関する設定」を参照してください。
-
スローダウン検出後は、ジャーナル、オペレーションジャーナル、イベントジャーナルなどの統計データから原因を絞り込むことができます。詳しくはオペレーション遅延への対応を参照してください。
2.2 モジュール別採取情報
各モジュール単位採取すべき情報について説明します。
2.2.1 HTTPサーバ
- ${ INSTANCE_ROOT}/logs/WebServerディレクトリのファイル全て
- (access.log/error.log等)
- ${ INSTANCE_ROOT}/config/WebServerディレクトリのファイル全て
- (httpd.conf/ssl.conf等)
2.2.2 Webコンテナ
- ${ INSTANCE_ROOT}/logsディレクトリのファイル全て
2.2.3 EJBコンテナ
- ・Standard-J Editionの場合
- ${ INSTANCE_ROOT}/logsディレクトリのファイル全て
- ・Standard/Enterprise Editionの場合
- ${ INSTANCE_ROOT}/logsディレクトリのファイル全てと、${ INSTANCE_ROOT}/logs/tpsystem配下の全ファイル
- Standard/Enterprise EditionのEJBコンテナの詳細ログを採取する場合は、プロセスグループのトレースレベルを7に設定してください。
2.2.4 JNDIサービス
- ${ INSTANCE_ROOT}/logs/jndi/webotx_jndisp.log
2.2.5 JMS
- ${ INSTANCE_ROOT}/wojms/instances/wojmsbroker/props/config.properties
- JMSサーバに関する設定情報が格納されるファイルです。
- ${ INSTANCE_ROOT}/logs/wojms/wojmsserver.log
- JMSサーバに関する動作がロギングされるファイルです。ファイルの切替が発生すると、wojmsserver.log,wojmsserver_1.log,…,wojmsserver_9.logという名前(デフォルトで最大10個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/wojmsadmin.log
- JMSサーバに対する運用管理操作の履歴がロギングされるファイルです。ファイルの切替が発生すると、wojmsadmin.log,wojmsadmin_1.log,…,wojmsadmin_9.logという名前(デフォルトで最大10個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/wojmspacket.log
- JMSサーバに対して送受信されるパケットの情報がロギングされるファイルです。ファイルの切替が発生すると、wojmspacket.log,wojmspacket_1.log,…,wojmspacket_9.logという名前(デフォルトで最大10個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/wojmsmessage.log
- JMSメッセージのライフサイクル情報がロギングされるファイルです。ファイルの切替が発生すると、wojmsmessage.log,wojmsmessage_1.log,…,wojmsmessage_9.logという名前(デフォルトで最大10個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/wojmserror.log
- JMSサーバに関するエラーがロギングされるファイルです。ファイルの切替が発生すると、wojmserror.log,wojmserror_1.log,…,wojmserror_9.logという名前(デフォルトで最大10個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/std.log
- JMSサーバ起動時のエラーや、スレッドのダンプの取得結果がロギングされるファイルです。JMSサーバが起動するタイミングでファイルを切り替え、直前に作成されたファイルのみstd.log.bakという名前で残します。
- ${ INSTANCE_ROOT}/logs/wojms/wojms.log
- JMSクライアントに関する動作がロギングされるファイルです。ファイルの切替が発生すると、wojms.log,wojms.log.1,wojms.log.2という名前(デフォルトで最大3個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/logs/wojms/wojmssv.pid
- JMSサーバ起動時のjavaプロセスのプロセスIDが出力されるファイルです。
2.2.6 Transactionサービス
- ${ INSTANCE_ROOT}/config/TS配下の全ファイル
- このディレクトリ配下に格納されるのはTransactionサービス内部で使用する設定情報ファイル、および実行中トランザクションの情報が格納されたファイルなどです。
- ${ INSTANCE_ROOT}/logs/TS配下の全ファイル
- 「*.trc」という名前のファイルが格納されますが、これらはTransactionサービスの動作に関する情報を採取したトレースファイルです。ファイルのサイズや情報採取レベルについてはotxadminコマンドにより設定することが可能です。
- 採取するレベルは0(採取しない)〜5(デバッグレベル)まで6段階あります。レベルを上げると情報量は増えますがその分トランザクションの処理速度が遅くなります。通常はレベルを低い設定にしておき、障害が発生した際にレベルを上げて原因を特定するのが通常の運用です。
- またこのファイルの内容を参照するためのツールをTransactionサービスで提供しています。Windows版ではGUIツールである「トレースビューア」、UNIX、Linux版では「trcview」lコマンドです。トレースビューアは<WebOTXインストールディレクトリ>\TS\binの配下にあるtrcview.exeです。またtrcviewコマンドは<WebOTXインストールディレクトリ>/TS/sbinの配下にあります。トレースビューアの使い方はツールのメニューからヘルプファイルを参照してください。
2.2.7 TPモニタ・マネージャ
- ${ INSTANCE_ROOT}/logs/tpsystem/webotx_tpmmgr.log
- TPモニタ・マネージャに関する動作がロギングされるファイルです。ファイルの切り替えが発生すると、webotx_tpmmgr.log, webotx_tpmmgr.log.1, webotx_tpmmgr.log.2という名前(デフォルトで最大3個)のファイルが作成されます。
- ${ INSTANCE_ROOT}/config/tpsystemの次のファイル
- - history.act,history.sav : サーバアプリケーションの起動、停止履歴
- - sysmsg.trc,sysmsg.sav : APサーバへの接続履歴
- .savファイルはそれぞれのバックアップファイルです。50000行を超えるかtpsystem起動時にファイルが切り替わりますので、障害発生時はサービス再起動前に採取してください。
- ${ INSTANCE_ROOT}/logs/tpsystem配下の全ファイル
- アプリケーショングループとプロセスグループ別にサーバアプリケーションのログファイルが出力されます。
2.2.8 OLF/TPアダプタ
オプション製品 - OLF/TPアダプタ - <WebOTX OLF/TPアダプタ 運用ガイド>を参照してください。
2.3 予防措置
以下にあげる措置を講じておくと、障害予防または障害発生時の早期解決に役立ちます。
- ・ネットワークキャプチャソフト
- Windowsでは標準ではネットワークキャプチャソフトがありませんが、通信障害時の調査に苦労することがあります。可能であれば、事前にネットワークキャプチャソフトをインストールしておくことをお勧めします。
- ・カーネルパラメータ設定
- カーネルパラメータをぎりぎりに設定すると、新たにアプリケーションを追加したときなどにマシン再起動が必要になってなってしまいます。カーネルパラメータは、ある程度余裕をもって設定するようにしてください。
- ・マルチスレッド評価
- 処理量増加などにより多重度を増やす時に、通常はスレッド数を増やしますが、1を2に変更するのは十分な事前評価を要します(APがマルチスレッド対応していない場合は正常に動作しない)。プロセス数を増やすことになると、メモリへの影響があります。事前に2スレッド以上で評価/運用されていると、スレッド数の変更が容易になります。
- ・クライアントアプリケーションでのエラー処理
- クライアントアプリケーションでNO_RESPONSEなどのエラー発生時、通信相手が不明だと調査が難航することがあります。通信相手(名前サーバ、OTX、JNDI、…)がわかるように、クライアントアプリケーションではこまめにエラー処理するようにしておくと障害解析性が向上します。
- ・シスログ設定
- Solarisではデフォルトのシスログ設定のままでは、Warningなどのメッセージがフィルタリングされてしまいます。WebOTXでは以下の設定でシスログを出力しています。
- 機能識別子(facility):user
- レベル:err、warning、info
- 障害解析を容易にするため、あらかじめこれらをファイルに出力するように設定しておくことをお勧めします。設定方法についてはOS側のマニュアル man -s 4 syslog.conf をご参照下さい。
- Linux環境においてはシスログ出力を有効にするためにはsyslogdに’-r’オプションをつけてください。’-r’オプションがないと出力されません。
- ・正常運用時の情報採取
- ある程度順調に動作していたシステムで普段より動作が遅くなったという場合、比較対象となる普段のデータがないと調査に苦労することがあります。キュー滞留数、ジャーナル、オペレーションジャーナルのデータを普段から採取しておくと、スローダウン障害発生時に解析が容易になります。
- ・JavaVMオプション
- HP-UXのJavaプロセスは標準でプロセス独自の時計を持っているためにプロセス間で時刻がずれてトレースの照合が困難になることがあります。これをOFFに設定する(プロセスグループ-JavaVMオプション-その他引数に-XX:+UseGetTimeOfDayを指定)と障害解析が容易になります。
- ・ワトソン博士の設定
- Windowsでは例外発生時のOS側挙動を設定できるようになっています。
- よく、例外発生のダイアログが画面に出力されることがありますが、このダイアログは例外を起こしたプ
- ロセスの処理の延長で出しているので、OKを押してダイアログを閉じるまでは例外プロセスはまだ終了し
- ていないことになります。終了すればWebOTX側の機能で再起動しますが、無人運転状態ではOKを押す人が
- いないためにプロセスがいつまでも終了直前のまま残ってしまい、サービスが継続できない状況となって
- しまいます。そこで、例外発生時のOS側挙動としてはダイアログを出さずに自動でワトソンログに出力す
- ることを推奨します。
- 但し、この設定はマシン一意なので他プロダクトの都合や運用手順と調整する必要があるかもしれません。
2.4 開発元へのお問い合わせ
開発元へお問い合わせの際は、以下の情報をお知らせください。
WebOTXに関する情報
- WebOTXのEdition
- WebOTXのバージョン
- WebOTXのパッチ適用状況
環境に関する情報
- OS情報
- JDKのバージョン
- 最近変更した内容
システム構成に関する情報
- 使用言語
- ステートレス/ステートフル
障害に関する情報
- 本番環境/評価環境
- 再現性の有無
- 障害内容とログ
3 障害対策
-
障害が発生した場合の対策について説明します。
3.1 プロセス監視
-
外部ツールなどを用いて、WebOTXのプロセス監視を行ないたい場合、監視を行なうべきプロセスおよび復旧方法について説明します。実際にプロセス監視を行なう場合は、以下を参考に必要に応じて監視プロセスの選択を行なってください。
-
なお、WebOTX上で動作するプロセス一覧については、「運用編(ドメインの運用)」の「3.システムに関する設定」を参照ください。
3.1.1 WebOTXエージェント
- 監視プロセス
- java -server -Dwebotx.funcid=agent -Ddomain.name=domain1 -Xms64m -Xmx512m -XX:NewRatio=2 -Dsun.io.useCanonCaches=false ...
- 監視を行なう場合の注意点
- javaプロセスであるため引数まで識別してプロセスを特定する必要があります。エージェントのJavaプロセスは、-Dwebotx.funcid=agent のシステムプロパティにより識別可能です。ドメインは、-Ddomain.nameシステムプロパティにより識別可能です。
- 異常検出時の復旧方法
- エージェントプロセスの監視で異常を検出した場合は該当ドメインの再起動が必要です。
- (停止) otxadmin> stop-domain domain1
- (起動) otxadmin> start-domain domain1
- (注1) Windows OSの場合、[
ドメイン構築・基本設定ガイド >
4. ドメインの運用操作 >
4.4. ドメインの起動停止 >
4.4.4. サービスでの運用とコマンドでの運用の違い ]
で説明しているように、復旧対象ドメインのプロセスユーザがコマンドを実行したユーザとなります。普段サービスから起動停止して運用しているような場合、ドメインプロセスのユーザが異なることで、アクセス権が変わり、業務アプリケーションに影響が出る可能性がありますのでご注意ください。
3.1.2 TPシステム
- 監視プロセス
- iiopリスナ
- iioplsn PLUNAME (5151) ...
- TPモニタ
- tpmonitor -n MySystem
- TPモニタプロセスは、tpmonitorが親プロセス、tpmMainが子プロセスになります。tpmMainが異常終了すると、tpmonitor も終了します。従って、tpmonitor を監視すれば、両方の監視ができます。ただし、tpmonitor だけが終了した場合、実質的な業務への影響はほとんどありません。
- 監視を行なう場合の注意点
- iiopリスナ:PLUNAMEで示されている番号が、IIOPリスナのポート番号(tpsystem.IIOPListener.listenerPortNumber)です。
- TPモニタ: -n の次がWebOTXシステム名となっています。
- 異常検出時の復旧方法
- iiopリスナプロセスの監視で異常を検出した場合は該当ドメインのTPシステムの再起動が必要です。
- (停止) otxadmin> stop-system
- (起動) otxadmin> start-system
- TPモニタプロセスの監視で異常を検出した場合は該当マシンの再起動が必要です。クラスタ構成の場合は縮退もしくはフェイルオーバさせてください。
- (停止) otxadmin> stop-system
- (起動) otxadmin> start-system
3.1.3 ObjectBrokerサービス
- 監視プロセス
- namesv
- /usr/lib/ObjectSpinner/bin/namesv -WOdomain /opt/WebOTX/domains/domain1
- cnamesv
- /usr/lib/ObjectSpinner/bin/cnamesv -WOdomain /opt/WebOTX/domains/domain1
- cnamesv
- /usr/lib/ObjectSpinner/bin/cnamesv -WOdomain /opt/WebOTX/domains/domain1
- oad
- /usr/lib/ObjectSpinner/bin/oad -WOdomain /opt/WebOTX/domains/domain1
- oadj
- java -Dwebotx.funcid=oadj -Ddomain.name=domain1 -classpath /usr/lib/ObjectSpinner/lib/ospiorb50…
- ospprxy
- /usr/lib/ObjectSpinner/bin/ospprxy …
- 監視を行なう場合の注意点
- namesv, cnamesv, oad, oadjの場合、domain1の部分がドメイン名となります。
- 異常検出時の復旧方法
- namesv、oad
- WebOTXの全てのEdition製品にインストールされます。
- 異常を検出した場合は該当ドメインの再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
- oadj
- WebOTXの全てのEdition製品にインストールされます。
- 異常を検出した場合は該当ドメインの oadj の再起動が必要です。
- (停止) otxadmin stop-oadj
- (起動) otxadmin start-oadj
- cnamesv
- Enterprise Editionで、選択した場合にだけインストールされます。
- 異常を検出した場合は該当ドメインのcnamesvの再起動が必要です。
- (停止) invoke server.objectbrokerservice.cnamesv.stop
- (起動) invoke server.objectbrokerservice.cnamesv.start
- それでも復旧しない場合は、該当ドメインの再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
- ospprxy
- Enterprise Editionで、選択した場合にだけインストールされます。
- 異常を検出した場合はospprxyの再起動が必要です。
- (停止) start-ospprxy
- (起動) stop-ospprxy
- それでも復旧しない場合は、該当ドメインの再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
3.1.4 JMSサービス
- 監視プロセス
- JMSサーバ
- java -server -Dwebotx.funcid=jms -Ddomain.name=domain1 -cp ....
- 監視を行なう場合の注意点
-
javaプロセスであるため引数まで識別してプロセスを特定する必要があります。JMSサーバのJavaプロセスは、-Dwebotx.funcid=jmsのシステムプロパティにより識別可能です。ドメインは、-Ddomain.nameシステムプロパティにより識別可能です。
- 異常検出時の復旧方法
- 異常を検出した場合は該当ドメインのJMSサーバの再起動が必要です。
- (停止) otxadmin stop-jms
- (起動) otxadmin start-jms
- それでも復旧しない場合は、該当ドメインの再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
3.1.5 Transactionサービス
- 監視プロセス
- RCS(C++)
- rcssv domain1C …
- 監視を行なう場合の注意点
- RCS(C++)
- domain1Cのdomain1の部分がドメイン名となります。
- 異常検出時の復旧方法
- 異常を検出した場合はトランザクションサービスの再起動が必要です。
- (停止) otxadmin stop-transaction-service
- (起動) otxadmin start-transaction-service
- それでも復旧しない場合は該当ドメイン再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
3.1.6 Webサーバ(Apache)
-
インストール時に、Webサーバ(Apache)を選択した場合に有効です。Javaの内蔵Webサーバを利用する場合には、本プロセスを監視する必要はありません。
- 監視プロセス
- 利用するApacheのバージョンにより、監視するプロセスが異なります。
- (Apache 1.3.x 利用時)
- (UNIX) /opt/WebOTX/WebServer/bin/httpd ……
- (Windows) <INSTALLDIR>\WebServer\apache.exe
- (Apache 2.0.x 利用時)
- (UNIX) /opt/WebOTX/WebServer2/bin/httpd ……
- (Windows) <INSTALLDIR>\WebServer2\bin\apache.exe
- 監視を行なう場合の注意点
- Apacheは、UNIXの場合、1つの親プロセスと複数の子プロセスが動作し、その子プロセスはアクセス数に応じて自動的に増減しますので監視は親プロセスのみを対象にしてください。Windowsの場合、1つの親プロセスと1つ(複数スレッド)の子プロセスが動作しますので、両方のプロセスを監視対象にしてください。
- 異常検出時の復旧方法
- 異常を検出した場合は、該当ドメインのWebサーバ(Apache)の再起動が必要です。
- (停止) otxadmin invoke server.internal-lifecycle-module.WebServerService.stop
- (起動) otxadmin invoke server.internal-lifecycle-module.WebServerService.start
- それでも復旧しない場合は該当ドメイン再起動が必要です。
- (停止) otxadmin stop-domain domain1
- (起動) otxadmin start-domain domain1
3.1.7 rotatelogs (server.log、server_err.log)
- エージェントプロセスの標準出力/標準エラー出力先ファイルをローテートするためのプロセスです。このプロセスが停止した場合、エージェントプロセス上で標準出力/標準エラーに出力したメッセージがリダイレクト先のログファイル(既定値:${INSTANCE_ROOT}/logs/server.log)に出力されなくなります。
- 監視プロセス
- (UNIX)
- /opt/WebOTX/bin/rotatelogs -g3 ${INSTANCE_ROOT}/logs/server.log 2M
- (Windows)
- ${INSTALL_ROOT}\bin\rotatelogs -g3 ${INSTANCE_ROOT}/logs/server.log 2M
- 監視を行なう場合の注意点
- 既定の場合、rotatelogsプロセスは1ドメインに対し1プロセス起動しますが、 標準出力と標準エラーを別のファイルに分ける設定を行っている場合、 1ドメインに対し標準出力用と標準エラー用の2プロセスが起動します。
- また、Webサーバのログのログローテーション設定を行っている場合、同名のプロセス(rotatelogs)が起動するため、 引数まで識別してプロセスを特定する必要があります。
- 標準出力/標準エラー出力先ログファイル用のrotatelogsプロセスは、 引数の出力先ログファイルにより識別してください。
- 出力先ログファイルの設定は以下のコマンドを実行して確認してください。
-
otxadmin > get server.log-service.file
- 標準出力と標準エラーを別のファイルに分ける設定を行っている場合、 標準エラー出力先ログファイルの設定は以下のコマンドを実行して確認してください。
-
otxadmin > get server.log-service.err-file
- 異常検出時の復旧方法
- 異常を検出した場合は、該当ドメイン再起動が必要です。
(停止) otxadmin stop-domain domain1
(起動) otxadmin start-domain domain1
3.2 ログ監視
-
外部ツールなどを用いて、WebOTXのログ監視を行ないたい場合、監視を行なうべきログファイルおよび監視メッセージについて説明します。実際にログ監視を行なう場合は、以下を参考に必要に応じて監視ログの選択を行なってください。
3.2.1 イベントログ
- 説明
- Windows OSでイベントログ(アプリケーションログ)に出力するWebOTXが出力する障害メッセージを監視させることが可能です。
- 監視メッセージ
- 以下のイベントソースがWebOTXで出力するイベントです。
-
| イベントソース名 | 説明 |
| WebOTX AS |
WebOTXエージェントが出力するイベントログです。致命的なメッセージを監視するには「エラー」レベルを監視対象にします。(※1) |
| WebOTXAgentService |
「WebOTX Agent Service」が出力するイベントログです。Windowsのサービス経由でWebOTXの起動・停止を行なったときのメッセージが出力されます。致命的なメッセージを監視するには「エラー」レベルを監視対象にします。 |
- WebOTX_ASMonitor
- systemname
|
Standard/Enterprise Editionにおける「TPモニタ」サービスが出力するイベントログです。systemnameには該当ドメインで設定したシステム名が入ります。監視の詳細は3.2.4章を参照してください。 |
| WebOTX_ASMonitor |
Standard/Enterprise EditionにおけるTPモニタ制御サービス(TPAサーバ:WebOTX TPBASEadmサービス)が出力するイベントログです。監視の詳細は3.2.4章「TPS12:TPAサーバ(運用管理)が出力するメッセージ」を参照してください。 |
| WebOTX_TS |
旧バージョンのWebOTX Transactionサービスが出力するイベントログです。Transactionサービスの旧互換ライブラリを使用している場合のみ出力します。致命的なメッセージを監視するには「エラー」レベルを監視対象にします。 |
-
※1 イベントIDのフォーマットについて
Windows環境において、各イベントログに対応するイベントIDは32bitのビット列で構成されています。
| ビット数 |
定義 |
| 1〜2 |
Severity |
| 3 |
Customer bit |
| 4 |
Reserved bit |
| 5〜16 |
Facility code |
| 17〜32 |
Status code |
WebOTXでは、イベントソース「WebOTX_AS」および「WebOTX_ObjectSpinner」で出力されるイベントログのイベントIDは、
イベントレベルにかかわらず 32bit 値の上位 16bit (「Severity」 から 「Facility code」まで) を常に「0」に設定しています。
そのため、監視ツールにおいて、イベントソース「WebOTX_AS」および「WebOTX_ObjectSpinner」のイベントIDを監視対象に設定する場合は、
イベントIDの上位 16bitが「0」となるように設定を行う必要があります。
例えば、NEC製のサーバ監視製品「ESMPRO/ServerAgent」,「WebSAM AlertManager」では、イベントソース名と32bit値のイベントIDをキーに監視を行います。
上記製品において監視対象とするイベントIDを設定する際、設定画面において10進数表示のまま監視対象を設定すると、イベントレベルに応じて 32bit値の最上位 2bit(Severity)が設定された状態で監視製品側に設定されます。
| 最上位2bit |
種類 |
| 00 |
成功 |
| 01 |
情報 |
| 10 |
警告 |
| 11 |
異常 |
32bit値のイベントIDを使ってイベントソース「WebOTX_AS」および「WebOTX_ObjectSpinner」のイベントログを監視対象とする場合は、
[アラートマネージャ設定画面]の[表示]-[16進数表示]を選択し、上位 16bit を「0」として設定してください。
他のイベントログ監視ツールを利用する場合においても、同様の対処を行ってください。
3.2.2 シスログ
- 説明
- UNIX OSでシスログに出力するWebOTXが出力する障害メッセージを監視させることが可能です。
- 監視メッセージ
- 以下のイベントソースがWebOTXで出力するイベントです。
-
| ログ識別名 | 説明 |
| WebOTX AS |
WebOTX内部で共有メモリやセマフォの作成、取得に失敗した場合に出力するイベントログです。また、Transactionサービスが出力するイベントログです。致命的なメッセージを監視するには「Error」レベル以上を監視対象にします。 |
| WebOTX_Agent |
WebOTXエージェントが出力するイベントログです。致命的なメッセージを監視するには「Error」レベル以上を監視対象にします。 |
| OTXM:systemname |
Standard/Enterprise Editionにおける「TPモニタ」サービスが出力するイベントログです。systemnameには該当ドメインで設定したシステム名が入ります。監視の詳細は3.2.4章を参照してください。 |
| WebOTX_TS |
旧バージョンのWebOTX Transactionサービスが出力するイベントログです。Transactionサービスの旧互換ライブラリを使用している場合のみ出力します。致命的なメッセージを監視するには「Error」レベル以上を監視対象にします。 |
3.2.3 WebOTX独自ログ
- 説明
- WebOTXで独自に出力するログファイルを監視させることが可能です。
- 監視メッセージ
- 監視対象にするファイルについて以下に説明します。
-
| ファイル名 | 説明 |
- ${INSTANCE_ROOT}/logs
- WebOTX_Agent.log
|
WebOTXドメインのエージェント内のJVMで出力される全てのメッセージを統合したログでです。致命的なメッセージを監視するには「ERROR」レベルを監視対象にします。 |
- ${INSTANCE_ROOT}/logs/WebServer
- error_log
|
WebOTX WebServerのエラーログです。致命的なメッセージを監視するにはログの先頭に「error」または「emerg」が出力されたメッセージを監視対象にします。 |
- ${INSTANCE_ROOT}/logs/ObjectBroker
- oad.log
|
Object Brokerのoadが出力するログファイルです。致命的なメッセージを監視するには、「ERROR: Startup of oad faild.」を含むメッセージを監視対象にします。 |
- ${INSTANCE_ROOT}/logs/ObjectBroker
- namesv.log
|
Object Brokerの名前サーバが出力するログファイルです。致命的なメッセージを監視するには、「ERROR: Startup of namesv faild.」を含むメッセージを監視対象にします。 |
- ${INSTANCE_ROOT}/logs/ObjectBroker
- cnamesv.log
|
Object Brokerのキャッシュ名前サーバが出力するログファイルです。致命的なメッセージを監視するには、「ERROR: Startup of cnamesv faild.」を含むメッセージを監視対象にします。 |
3.2.4 監視対象メッセージ(TPSメッセージ)
- 説明
- イベントログ・シスログで監視すべきTPSメッセージは基本的にERRORレベルになります。ただし、ERRORレベルであっても条件によっては正常時に出力されるメッセージや、INFOレベルであっても監視対象にすべきメッセージが存在します。これらのメッセージ監視について説明します。
- 監視メッセージ
- 監視対象にするメッセージIDとエラーレベル、説明と注意事項について以下に説明します。メッセージ内容や処置についてはオペレータメッセージ編を参照してください。
- TPS01:内部テーブルアクセスが出力するメッセージ
- 監視メッセージは特にありません。
- TPS04:システムTPPが出力するメッセージ
- 以下のメッセージIDを監視対象としてください。TPS04-00703とTPS04-00713以外のERRORメッセージを監視する必要があります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS04-00102 | ERROR |
- システムTPP の初期処理でエラーが発生したので、システムTPPは終了しました。エラーには以下の場合があります。
- 1. キュー制御初期化時のエラー
- 2. テーブル参照の失敗
- 3. 環境変数の不正
|
| TPS04-00103 | ERROR |
キューの送受信で永久障害が発生したので、システムTPPは終了しました。 |
| TPS04-00105 | ERROR |
TPBASE 内部テーブルのロック/アンロックの異常により、システムTPPは終了しました。 |
| TPS04-00203 | ERROR |
WebOTX内部で使用するテーブルが正しくありません。 |
| TPS04-00204 | ERROR |
カタログディレクトリ下のtpsmsgディレクトリへの移動に失敗しました。ERRNOは、内部で発行しているシステムのchdir 関数のerrnoです。 |
| TPS04-00406 | ERROR |
端末情報の取得に失敗しました。 |
| TPS04-00703 | ERROR |
共有作業域確保/ 解放関数でエラーが発生しました。 |
| TPS04-00807 | ERROR |
アプリケーション初期プロセスが異常終了しました。 |
| TPS04-00813 | ERROR |
アプリケーション初期プロセスを起動できません。 |
| TPS04-00816 | ERROR |
アプリケーション初期プロセスからのレスポンスを、待ち時間を経過した後に受信しました。トランザクションの実行結果に関係なく電文を破棄しました。負荷が高い状態で運用されていることが考えられます。 |
| TPS04-00903 | ERROR |
オペレータメッセージの送信処理でエラーが発生しました。 |
| TPS04-00905 | ERROR |
オペレータメッセージの送信処理でエラーが発生しました。 |
| TPS04-01002 | ERROR |
アプリケーショングループの起動に失敗しました。 |
| TPS04-01003 | ERROR |
アプリケーショングループの停止に失敗しました。 |
| TPS04-01011 | ERROR |
内部テーブルが正しくありません。 |
| TPS04-01012 | ERROR |
VDサーバから不正な電文を受信しました。 |
| TPS04-01013 | ERROR |
VDサーバに対する電文の送信でエラーが発生しました。 |
| TPS04-01201 | ERROR |
キュー制御関数でエラーが発生しました。一時障害なら処理を続行します。永久障害ならシステムTPPは終了します。 |
| TPS04-01202 | ERROR |
メモリプール関数でエラーが発生しました。一時障害なら処理を続行します。永久障害ならシステムTPP は終了します。 |
| TPS04-01203 | ERROR |
キュー制御関数でエラーが発生しました。一時障害なら処理を続行します。永久障害ならシステムTPP は終了します。 |
| TPS04-01301 | ERROR |
メモリ不足のため作業領域が確保できません。 |
| TPS04-01302 | ERROR |
- 割り込みが発生しました。SIGIDはシグナル種別です。
- SIGID=15 であれば、モニタ正常終了時でも出力されることがあります。
|
| TPS04-01404 | ERROR |
VDの起動に失敗しました。 |
| TPS04-01405 | ERROR |
VDの停止に失敗しました。 |
| TPS04-01503 | ERROR |
activeディレクトリへのアクセスが失敗しました。 |
- TPS06:キュー制御が出力するメッセージ
- 監視メッセージは特にありません。
- TPS07:通信リスナが出力するメッセージ
- 以下のメッセージIDを監視対象としてください。TPS07-00307以外のERRORを監視する必要があります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS07-00106 | ERROR |
リスナでキュー制御関数が失敗しました。エラーの内容はERRNOに依存します。 |
| TPS07-00312 | ERROR |
内部テーブルにアタッチできません。 |
| TPS07-00313 | ERROR |
テーブルのロック/アンロックでエラーが発生しました。 |
| TPS07-00401 | ERROR |
リスナが起動後、着呼待ちを行うための通信手順を行う際に致命的エラーがメッセージ内に表示される通信API関数で発生しました。 |
| TPS07-00402 | ERROR |
リスナ起動に必須である関数(メッセージ内に表示)でエラーが発生したため、リスナが起動できません。 |
| TPS07-00403 | ERROR |
メッセージ内に表示されるキュー制御関数で致命的エラーが発生しました。異常の内容はERRNOに依存します。 |
| TPS07-00602 | ERROR |
TPBASE内部のキュー制御関数でエラーが発生しました。 |
- TPS09:VDサーバが出力するメッセージ
- 以下のメッセージIDを監視対象としてください。監視しないERRORメッセージがあります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS09-00101 | ERROR |
VDサーバの初期化処理に失敗しました。 |
| TPS09-00106 | WARNING |
VDサーバがVD解放処理に失敗しました。VDを閉塞します。 |
| TPS09-00107 | WARNING |
VDサーバがVD接続処理に失敗しました。VDを閉塞します。 |
| TPS09-00114 | ERROR |
電文の再送に失敗しました。 |
| TPS09-00115 | WARNING |
トランザクション型VDで起動先オペレーションのレスポンス待ち時間をオーバーしました。 |
| TPS09-00202 | WARNING |
VDサーバがVDごとの制御テーブルを検索できませんでした。 |
| TPS09-00203 | WARNING |
VDサーバがクライアントごとの制御テーブルを検索できませんでした。 |
| TPS09-00204 | WARNING |
VDサーバがオペレーションごとの制御テーブルを検索できませんでした。 |
| TPS09-00205 | WARNING |
VDサーバが接続中のクライアントごとの制御テーブルを検索できませんでした。 |
| TPS09-00206 | WARNING |
VDサーバが接続中のVDごとの制御テーブルを検索できませんでした。 |
| TPS09-00309 | ERROR |
メモリの確保に失敗しました。 |
| TPS09-00401 | ERROR |
VDサーバがメモリプールの初期化をできませんでした。 |
| TPS09-00402 | ERROR |
VDサーバがメモリプールの生成をできませんでした。 |
| TPS09-00403 | ERROR |
VDサーバがメモリプールの削除をできませんでした。 |
| TPS09-00404 | ERROR |
VDサーバが端末送受信用メモリプールID の取得に失敗しました。 |
| TPS09-00406 | ERROR |
電文送信用に確保したメモリブロックの解放に失敗しました。 |
| TPS09-00501 | ERROR |
VDサーバがキュー制御の初期化をできませんでした。 |
| TPS09-00502 | ERROR |
VDサーバがキューを生成できませんでした。 |
| TPS09-00503 | ERROR |
VDサーバがキューを削除できませんでした。 |
| TPS09-00504 | ERROR |
VDサーバがキュー制御のリセットをできませんでした。 |
| TPS09-00506 | WARNING |
VDサーバがキューをデキューイング禁止にできませんでした。 |
| TPS09-00507 | WARNING |
VDサーバがキューをデキューイング禁止解除にできませんでした。 |
| TPS09-00509 | WARNING |
VDサーバがトランザクション型VDの電文を送信できませんでした。このVDを閉塞します。 |
| TPS09-00511 | WARNING |
VDサーバが端末型VDの電文を送信できませんでした。このVDを閉塞します。 |
| TPS09-00512 | WARNING |
正常に送信完了した電文をキューから削除できませんでした。このVDを閉塞します。 |
| TPS09-00513 | WARNING |
VDサーバがキューをキューイング禁止にできませんでした。このVDを閉塞します。 |
| TPS09-00514 | WARNING |
VDサーバがキューをキューイング禁止解除にできませんでした。このVDを閉塞します。 |
| TPS09-00516 | WARNING |
VDサーバが滞留電文数を取得するためのキュー情報取得に失敗しました。このVDを閉塞します。 |
| TPS09-00518 | WARNING |
VDサーバがキューの電文をパージ(デキューイング)できませんでした。 |
| TPS09-00601 | WARNING |
リソース不足検出時のリトライ処理のためのタイマ登録に失敗しました。このVDを閉塞します。 |
| TPS09-00602 | WARNING |
レスポンス時間監視用タイマ登録に失敗しました。 |
| TPS09-00603 | WARNING |
レスポンス時間監視用タイマキャンセルに失敗しました。 |
| TPS09-01110 | WARNING |
VD サーバへのVD滞留電文削除要求に失敗しました。 |
| TPS09-01114 | WARNING |
VD作成に失敗しました。 |
| TPS09-01119 | WARNING |
VDキューの滞留電文数の取得に失敗しました。 |
| TPS09-01124 | WARNING |
処理の途中でクライアントが切断されました。 |
| TPS09-01201 | WARNING |
ファイル型VDのファイルオープンでエラーが発生しました。 |
| TPS09-01202 | WARNING |
ファイル型VDのファイルリードでエラーが発生しました。 |
| TPS09-01203 | WARNING |
ファイル型VDのファイルライトでエラーが発生しました。 |
| TPS09-01204 | WARNING |
ファイル型VDのメッセージ登録に失敗しました。 |
- TPS10:tplib(サーバAPライブラリ)が出力するメッセージ
- 以下のメッセージIDを必須の監視対象としてください。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS10-00301 | ERROR |
メモリプールIDが取得できません。 |
| TPS10-00401 | ERROR |
内部で利用される共有メモリが不足しています。 |
| TPS10-00501 | ERROR |
メモリプールの初期化ができません。 |
| TPS10-00601 | ERROR |
メモリブロックの解放ができません。 |
| TPS10-00701 | ERROR |
メモリプールの作成ができません。 |
| TPS10-00801 | ERROR |
内部で利用されるキュー制御関数の初期化ができません。 |
| TPS10-00901 | ERROR |
内部で利用されるキューの生成ができません。 |
| TPS10-01001 | ERROR |
内部で利用されるキュー制御関数でエラーが発生しました。 |
| TPS10-01101 | ERROR |
内部で利用されるキュー制御関数でエラーが発生しました。 |
| TPS10-01201 | ERROR |
内部で利用されるキュー制御関数でエラーが発生しました。 |
| TPS10-01301 | ERROR |
内部で利用されるメモリブロックの確保ができませんでした。 |
| TPS10-01401 | ERROR |
内部で利用される共有メモリが不足しています。 |
| TPS10-02501 | ERROR |
指定されたプロセスグループは存在しない。 |
| TPS10-02601 | ERROR |
なんらかの原因で内部で利用されるテーブルが破壊されています。 |
| TPS10-02701 | ERROR |
なんらかの原因で内部で利用されるテーブルが破壊されています。 |
| TPS10-02901 | ERROR |
メモリ不足です。 |
| TPS10-03001 | ERROR |
activeディレクトリに書き込み権がありません。 |
| TPS10-04501 | ERROR |
なんらかの原因で内部で利用されるテーブルが破壊されています。 |
| TPS10-11301 | ERROR |
送信スレッドの停止状態を検出しました。 |
| TPS10-11701 | ERROR |
実行スレッドが全て停止しました。 |
| TPS10-13501 | ERROR |
WebOTXの制御外でスレッドが消滅しているのを検出した。 |
| TPS10-14201 | ERROR |
内部で利用されるキュー制御関数でエラーが発生しました。 |
- 以下のメッセージIDは利用者側の判断で監視対象としてください。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS10-01901 | ERROR |
メモリ不足です。 |
| TPS10-02101 | ERROR |
メモリ不足です。 |
| TPS10-02201 | ERROR |
メモリ不足です。 |
| TPS10-02301 | ERROR |
メモリ不足です。 |
| TPS10-03101 | ERROR |
停止中のアプリケーショングループに対して呼び出しが発生しました。 |
| TPS10-03201 | ERROR |
閉塞中のオペレーションに対して呼び出しが発生しました。 |
| TPS10-03301 | ERROR |
サーバコンポーネント(dllディレクトリの.so、.sl、.dll)の形式不正。 |
| TPS10-03501 | ERROR |
データベースの接続ができませんでした。 |
| TPS10-03601 | ERROR |
データベースの切り離しに失敗しました。 |
| TPS10-03701 | ERROR |
オペレーションの再実行回数が設定値になりました。 |
| TPS10-04401 | ERROR |
オペレーション実行中に例外が発生しました。コードに続いてアプリケーショングループ名、プロセスグループ名、プロセスIDを表示しています。 |
| TPS10-04901 | ERROR |
なんらかの原因で内部テーブルが破壊されています。 |
| TPS10-05101 | ERROR |
ディスク容量不足で、ファイル型VDへの書き込みエラーが発生しました。 |
| TPS10-05301 | ERROR |
ORACLEのエラーが検出されました。 |
| TPS10-11001 | ERROR |
スレッド情報の初期化に失敗しました。 |
| TPS10-11101 | ERROR |
スレッド生成後の初期化処理にてタイムアウトが発生しました。 |
| TPS10-12001 | ERROR |
内部エラー。 |
| TPS10-12201 | ERROR |
内部エラー。 |
| TPS10-12301 | ERROR |
内部エラー。 |
| TPS10-13001 | ERROR |
TPSAbort(0) (スレッドの終了)が呼び出されました。ユーザ実装部でTPSAbort(0)を呼んだか、もしくは、Javaで作られた常駐オブジェクトのコールバックがランタイム例外を発生したためにそれを検出したオブジェクトマネージャがTPSAbort(0)を呼び出しました。 |
| TPS10-13101 | ERROR |
TPSAbort(1) (スレッドのリスタート)が呼び出されました。 |
| TPS10-13201 | ERROR |
TPSAbort(-1) (プロセスの終了)が呼び出されました。ユーザ実装部でTPSAbort(-1)を呼んだか、もしくは、Javaで作られたユーザ実装部がランタイム例外を発生したためにそれを検出したオブジェクトマネージャがTPSAbort(-1)を呼び出しました。 |
| TPS10-13301 | ERROR |
オペレーションの実行時間上限を超えたため処理を打ち切りました。 |
| TPS10-14001 | ERROR |
メモリ不足です。 |
| TPS10-14101 | ERROR |
メモリ不足です。 |
| TPS10-16001 | ERROR |
DB連携機能を使用したプロセスで例外が発生したためプロセスを強制終了しました。 |
| TPS10-16101 | ERROR |
DB連携機能を使用したプロセスで実行時間超過が発生したためプロセスを強制終了しました。 |
- TPS11:ジャーナルが出力するメッセージ
- 監視メッセージは特にありません。
- TPS12:TPAサーバ(運用管理)が出力するメッセージ
- 以下のメッセージIDを監視対象としてください。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS12-00101 | ERROR |
ホスト名がhostsファイル内に定義されていません。 |
| TPS12-00103 | ERROR |
socketシステムコールでエラーが発生しました。 |
| TPS12-00104 | ERROR |
connectシステムコールでエラーが発生しました。 |
| TPS12-00112 | ERROR |
- Windowsのみ
- サービス制御のためのハンドル取得に失敗しました。
|
| TPS12-00113 | ERROR |
- Windowsのみ
- ステータス取得に失敗しました。
|
| TPS12-00115 | ERROR |
- Windowsのみ
- bindシステムコールでエラーが発生しました。
|
| TPS12-00116 | ERROR |
- Windowsのみ
- listenシステムコールでエラーが発生しました。
|
| TPS12-00117 | ERROR |
- Windowsのみ
- acceptシステムコールでエラーが発生しました。
|
| TPS12-00119 | ERROR |
getaddrinfoシステムコールでエラーが発生しました。 |
| TPS12-00120 | ERROR |
ソケットの作成に失敗しました。 |
| TPS12-00121 | ERROR |
selectシステムコールでエラーが発生しました。 |
| TPS12-01310 | ERROR |
- Windowsのみ
- WSAStartupの実行に失敗しました。
|
| TPS12-01311 | ERROR |
- Windowsのみ
- OpenSCManagerの実行に失敗しました。
|
| TPS12-01312 | ERROR |
- Windowsのみ
- TPBASEadmの起動に失敗しました。
|
| TPS12-01313 | ERROR |
- Windowsのみ
- 起動待ち時間内にTPBASEadmの起動が完了しませんでした。
|
| TPS12-54101 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadm 起動時に、エラー番号の要因により、レジストリ(SOFTWARE\NEC\WebOTX\TPBASE)のオープン関数RegOpenKeyEx()に失敗しました。
|
| TPS12-54102 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadm 起動時に、エラー番号の要因により、レジストリキー値の取得関数RegQueryValueEx()に失敗しました。
|
| TPS12-54112 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadm 起動時に、エラー番号の要因により、StartServiceCtrlDispatcher()の実行に失敗しました。
|
| TPS12-54132 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadm 起動時に、エラー番号の要因により、RegisterServiceCtrlHandler()の実行に失敗しました。
|
| TPS12-54133 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadmの起動、または、停止時に、エラー番号の要因により、サービス制御マネージャへの通知関数ReportStatus()の実行に失敗しました。
|
| TPS12-54134 | ERROR |
- Windowsのみ
- サービス WebOTX AS TPBASEadm起動時に、エラー番号の要因により、CreateProcess()の実行に失敗しました。
|
| TPS12-54239 | ERROR |
- Windowsのみ
- サービス WebOTX TPBASEadm起動後の、サービス監視関数の実行に失敗しました。(リトライ失敗)
|
- TPS13:メッセージ制御が出力するメッセージ
- 以下のメッセージIDを監視対象としてください。全ERRORメッセージを監視対象にする必要があります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS13-00102 | ERROR |
メッセージ制御の初期処理でエラーが発生したため終了しました。以下の場合があります。
- キュー制御初期化のエラー
- テーブル参照の失敗
- 環境変数の不正
|
| TPS13-00103 | ERROR |
キューの送受信で永久障害が発生したので、メッセージ制御は終了しました。 |
| TPS13-00105 | ERROR |
内部テーブルのロック/アンロックの異常により、メッセージ制御は終了しました。 |
| TPS13-00201 | INFO |
内部で使用するテーブルが正しくありません。 |
| TPS13-00301 | INFO |
受信電文に必要な最低限の長さがありません。 |
| TPS13-00302 | ERROR |
受信電文の要求種別はメッセージ送信TPP で扱わないものです。 |
| TPS13-00502 | ERROR |
割り込みが発生しました。 |
- TPS15:TPモニタが出力するメッセージ
- 以下のメッセージIDを監視対象としてください。監視しないERRORメッセージがあります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS15-00102 | ERROR |
プロセスの起動に失敗しました。 |
| TPS15-00106 | ERROR |
TPシステムが起動時情報登録に失敗しました。 |
| TPS15-00602 | ERROR |
メモリ不足のため、コマンド管理テーブルの作成に失敗しました。 |
| TPS15-00603 | ERROR |
メモリ不足のため、プロセス管理テーブルの作成に失敗しました。 |
| TPS15-00604 | ERROR |
共有メモリはすでに存在しています。 |
| TPS15-00605 | ERROR |
共有メモリの確保に失敗しました。 |
| TPS15-00612 | ERROR |
メッセージキューが処理待ちのメッセージでいっぱいになりました。 |
| TPS15-00701 | ERROR |
TPBASE構成ファイル中のTBLKEY で共有テーブルが作成できませんでした。 |
| TPS15-00702 | ERROR |
TPBASE構成ファイル中のTBLKEYで共有テーブルが作成できませんでした。 |
| TPS15-00901 | ERROR |
構成ファイル(tpbase.cnf)の処理中にエラーが発生しました。 |
| TPS15-01101 | ERROR |
TPシステムの起動に失敗しました。 |
| TPS15-01102 | ERROR |
TPシステムが異常終了しました。 |
| TPS15-01103 | ERROR |
アプリケーショングループの起動に失敗しました。続く名前はアプリケーショングループ名。 |
| TPS15-01105 | ERROR |
プロセスグループの起動に失敗しました。CLASSはプロセスグループ名、PEDはアプリケーショングループ名。 |
| TPS15-01107 | ERROR |
- TPシステムからの停止指示以外の原因でプロセスが終了しました。PIDはプロセスID、classはプロセスグループ名、pedはアプリケーショングループ名。
- リスナ異常終了対策として、TPS15-01107とclass[IIOPLSN_CLS] のand条件、TPS15-01107 と class[OLFTPLSN_CLS] のand条件、を監視して下さい。なお、WebOTXを起動したままOSシャットダウンを行なうと本メッセージがでる場合があることに留意してください。検出時の対処としては、TPS07で始まるその他のメッセージが出ている場合はその対処に従い、特に出ていない場合はWebOTX開発元に連絡して下さい。
|
| TPS15-01313 | ERROR |
ファイルI/Oエラーが発生しました。 |
| TPS15-02002 | ERROR |
TPモニタプロセス(tpmMain)で例外が発生しました。 |
| TPS15-02003 | ERROR |
sigaction()コールの失敗により、TPシステムの起動に失敗しました。 |
| TPS15-02004 | ERROR |
fork()コールの失敗により、TPシステムの起動に失敗しました。 |
| TPS15-02009 | ERROR |
TPシステム登録情報が不正です。 |
| TPS15-02022 | ERROR |
レジストリへのアクセスに失敗しました。 |
| TPS15-02023 | ERROR |
レジストリへのアクセスに失敗しました。 |
| TPS15-02026 | ERROR |
CreateProcess()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02027 | ERROR |
sigaction()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02028 | ERROR |
execvp()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02029 | ERROR |
fork()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02030 | ERROR |
waitpid()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02034 | ERROR |
sigaction()コールの失敗により、TPモニタの起動に失敗しました。 |
| TPS15-02101 | ERROR |
TPモニタが予期しないシグナル xxxx を受信し、例外しました。 |
| TPS15-10001 | ERROR |
キュー管理ロックテーブルの初期化に失敗しました。 |
| TPS15-10002 | ERROR |
キュー管理テーブルの共有メモリの確保に失敗しました。 |
| TPS15-10003 | ERROR |
キュー管理テーブルの共有メモリのアタッチに失敗しました。 |
| TPS15-10004 | ERROR |
メッセージ管理テーブルの共有メモリの確保に失敗しました。 |
| TPS15-10005 | ERROR |
メッセージ管理テーブルの初期化に失敗しました。 |
| TPS15-10006 | ERROR |
メモリプールテーブルの共有メモリの確保に失敗しました。 |
| TPS15-10007 | ERROR |
メモリプールテーブルの初期化に失敗しました。 |
| TPS15-10008 | ERROR |
メモリプールテーブルの作成に失敗しました。 |
- TPS17:タイマデーモンが出力するメッセージ
- 監視メッセージは特にありません。
- TPS18:データベースインタフェースが出力するメッセージ
- 監視メッセージは特にありません。
- TPS19:VDキュー管理が出力するメッセージ
- 以下のメッセージIDを監視対象としてください。全ERRORメッセージを監視対象にする必要があります。
-
| メッセージID | エラーレベル | 説明・注意事項 |
| TPS19-00101 | ERROR |
VD用データファイルが壊れています。または、未初期化のデータファイルを使用しています。 |
| TPS19-00102 | ERROR |
VD用データファイルが壊れています。または、未初期化のデータファイルを使用しています。 |
| TPS19-00103 | WARNING |
VD用データファイルの破損を検出しましたが修復しました。 |
| TPS19-00104 | WARNING |
VD用データファイルの破損を検出しましたが修復しました。 |
| TPS19-00105 | ERROR |
VD用データファイルの設定変更に失敗しました。変更内容は以下の場合があります。
- filesize:ファイルサイズが現在使用中のサイズより小さく縮小できない。
|
| TPS19-00106 | ERROR |
VD用データファイルに空き領域がありません。 |
| TPS19-00107 | ERROR |
VD用データファイルが壊れている可能性があります。 |
| TPS19-00201 | ERROR |
VD用キューの管理データが壊れています。 |
| TPS19-00202 | ERROR |
VD用キューの管理データが壊れています。 |
| TPS19-00203 | WARNING |
VD用キューの管理データの破損を検出しましたが修復しました。 |
| TPS19-00204 | WARNING |
VD用キューの管理データの破損を検出しましたが修復しました。 |
| TPS19-00207 | ERROR |
VD用キューの管理テーブルが存在しません。または、未初期化のデータファイルを使用しています。管理テーブルは以下の場合があります。
- file management table:データファイル管理テーブル
- file list table :ファイルリストテーブル
- queue list table :キューリストテーブル
|
| TPS19-00208 | ERROR |
重複するキューを作成しようとしました。 |
| TPS19-00209 | ERROR |
最大キュー数を越えてキューを作成しようとしました。 |
| TPS19-00210 | ERROR |
最大ファイル数を越えて VD データファイルを作成しようとしました。 |
| TPS19-00211 | ERROR |
送信禁止状態のキューにデータを送信しようとしました。VD データファイルが壊れている可能性があります。 |
| TPS19-00212 | ERROR |
受信禁止状態のキューからデータを受信しようとしました。VD データファイルが壊れている可能性があります。 |
| TPS19-00213 | ERROR |
優先送信不可状態のキューにデータを優先送信しようとしました。VD データファイルが壊れている可能性があります。 |
| TPS19-00302 | ERROR |
他プロセスが掛けたロックをアンロックしようとしました。VD データファイルが壊れている可能性があります。 |
| TPS19-00303 | ERROR |
ロックファイル名称を取得できませんでした。 |
| TPS19-01101 | ERROR |
WebOTX 内部で使用する SG テーブルが正しくありません。 |
| TPS19-01102 | ERROR |
最大値を越えた要求です。
- tpbase.cnf/MAXVDF :VD データファイル数のオーバー
|
| TPS19-02101 | ERROR |
OSのライブラリ関数呼び出しでエラーが発生しました。資源不足やシステム異常が発生している可能性があります。 |
| TPS19-02102 | ERROR |
OSのライブラリ関数呼び出しでエラーが発生しました。資源不足やシステム異常が発生している可能性があります。 |
| TPS19-02103 | ERROR |
OSのライブラリ関数呼び出しでエラーが発生しました。資源不足やシステム異常が発生している可能性があります。 |
| TPS19-02104 | ERROR |
OSのライブラリ関数呼び出しでエラーが発生しました。資源不足やシステム異常が発生している可能性があります。 |
| TPS19-02105 | ERROR |
OSのライブラリ関数呼び出しでエラーが発生しました。資源不足やシステム異常が発生している可能性があります。 |
- TPS20:VDキューツールコマンドが出力するメッセージ
- 監視メッセージは特にありません。
3.3 Object Broker での例外と対処
- Object Brokerサービスに関する例外と対処について説明します。
3.3.1 Object Broker Java例外一覧
- Object BrokerJavaで発生する例外ごとに、マイナーコード別の原因と対策を一覧にしています。
NO_RESPONSE
- ・マイナーコード 5038 ( vmcid: 0x1000 minor code: 942 )
| 原因 | 指定した名前サービスなどの初期サービスが見つからない |
| 対策 | 指定した名前サービスなどの初期サービスが正常に起動しているかを確認してください。 |
- ・マイナーコード 5130 ( vmcid: 0x1000 minor code: 1034 )
| 原因 | リクエスト呼び出しにおいてタイムアウトが発生 |
| 対策 | サーバの処理に時間がかかっていないかを確認してください。CORBAリクエスト呼び出しのタイムアウト値は、デフォルトで30秒となっています。サーバの処理に30秒以上かかる場合は、統合運用管理ツールで、objectbrokerconfig MOの属性 「リクエスト呼び出しのタイムアウト時間」(RequestTimeout)を、適切な値に変更してください。 |
- ・マイナーコード 5006 ( vmcid: 0x1000 minor code: 910 )
| 原因 | メッセージの受信に失敗した |
| 対策 | サーバとクライアントのインターフェース(IDL)の定義が合っていない可能性があります。サーバもしくはクライアントのどちらか一方のファイルだけを更新したことで、アプリケーションのファイルのバージョンが合っていない状態となっていないかを確認してください。 |
- ・マイナーコード 5092 ( vmcid: 0x1000 minor code: 996 )
| 原因 | 名前サーバが見つからない |
| 対策 | 名前サーバ(namesv)が正常に起動しているかを確認してください。 |
- ・マイナーコード 5093 ( vmcid: 0x1000 minor code: 997 )
| 原因 | IRサーバが見つからない |
| 対策 | IRサーバ(irsv)が正常に起動しているかを確認してください。 |
- ・マイナーコード 5195 ( vmcid: 0x1000 minor code: 1099 )
| 原因 | SecurityServiceComponentManagerが見つからない |
| 対策 | 開発部門へお問い合わせください。 |
- ・マイナーコード 5100 ( vmcid: 0x1000 minor code: 1004 )
| 原因 | get_next_response()がタイムアウトした |
| 対策 | サーバの処理に時間がかかっていないかを確認してください。CORBAリクエスト呼び出しのタイムアウト値は、デフォルトで30秒となっています。サーバの処理に30秒以上かかる場合は、統合運用管理ツールで、objectbrokerconfig MOの属性 「リクエスト呼び出しのタイムアウト時間」(RequestTimeout)を、適切な値に変更してください。 |
COMM_FAILURE
- ・マイナーコード 5007 ( vmcid: 0x1000 minor code: 911 )
| 原因 | TCP/IPレベルの通信障害発生により、java.io.IOExceptionが検知された |
| 対策 | 例外メッセージを参照してください。また、通信相手のサーバマシンが起動しているかを確認してください。 |
- ・マイナーコード 5027 ( vmcid: 0x1000 minor code: 931 )
| 原因 | TCP/IPのソケットの開設に失敗した |
| 対策 | ソケットがすでにクローズしているためにストリームを取得できませんでした。通信相手のアプリケーションが終了していないか、WebOTXのシステム/サービスが起動しているか、およびネットワークの状態について確認してください。 |
- ・マイナーコード 5037 ( vmcid: 0x1000 minor code: 941 )
| 原因 | 未知のホスト名 |
| 対策 | ホスト名が正しく指定されているか、DNSなどによるホスト名解決で正しく検索可能かを確認してください。 |
- ・マイナーコード 5046 ( vmcid: 0x1000 minor code: 950 )
| 原因 | java.net.SocketExceptionが発生した |
| 対策 | 名前サービスなどのサービスの初期リファレンスの取得に失敗しました。WebOTXのシステム/サービスが起動しているかを確認してください。 |
- ・マイナーコード 5149 ( vmcid: 0x1000 minor code: 1053 )
| 原因 | これ以上のコネクションを接続することができない |
| 対策 | コネクションの数が制限を超えています。コネクションの最大接続数を変更する場合は、統合運用管理ツールで、objectbrokerconfig MOの属性 「コネクションの最大接続数」(MaxConnection)を、適切な値に変更してください。 |
- ・マイナーコード 5174 ( vmcid: 0x1000 minor code: 1078 )
| 原因 | SSLハンドシェイクが失敗した |
| 対策 | 指定した証明書の有効期限が切れていないかなど、SSLの環境について確認してください。 |
- ・マイナーコード 5224( vmcid: 0x1000 minor code: 1128 )
| 原因 | 多重化されたオブジェクトリファレンスのコネクション接続に失敗した |
| 対策 | コネクション活性化の待ち合わせを行いましたが、コネクション接続に失敗しました。多重化の設定を確認してください。また、通信相手においても多重化の設定を確認してください。 |
UNKNOWN
- ・マイナーコード 5007 ( vmcid: 0x1000 minor code: 911 )
| 原因 | java.io.IOExceptionが発生した |
| 対策 |
- 自動起動サーバ登録情報の読み込みまたは書き込みに失敗しました。
- 以下のディレクトリのファイルの内容を確認してください。
- (ドメイン配下で動作するWebOTXシステムの場合)
- Windows : (WebOTXインストールディレクトリ)\domains\(ドメイン名)\config\ObjectBroker\implrep
- UNIX : /opt/WebOTX/domains/(ドメイン名)/config/ObjectBroker/implrep
- (ドメイン外で動作するWebOTXシステムの場合)
- Windows : (WebOTXインストールディレクトリ)\Objectbroker\conf\implrep
- UNIX : /opt/ObjectSpinner/conf/implrep
|
- ・マイナーコード 5038 ( vmcid: 0x1000 minor code: 942 )
| 原因 | 自動起動サーバがみつからない |
| 対策 | 登録されている自動起動サーバの設定を確認してください。 |
- ・マイナーコード 5144 ( vmcid: 0x1000 minor code: 1048 )
| 原因 | 自動起動登録サーバの情報が不正 |
| 対策 |
- 登録されている自動起動サーバの情報の形式が不正です。自動起動登録設定を確認してください。
- 以下のディレクトリのファイルの内容を確認してください。
- (ドメイン配下で動作するWebOTXシステムの場合)
- Windows : (WebOTXインストールディレクトリ)\domains\(ドメイン名)\config\ObjectBroker\implrep
- UNIX : /opt/WebOTX/domains/(ドメイン名)/config/ObjectBroker/implrep
- (ドメイン外で動作するWebOTXシステムの場合)
- Windows : (WebOTXインストールディレクトリ)\Objectbroker\conf\implrep
- UNIX : /opt/ObjectSpinner/conf/implrep
|
- ・マイナーコード 5204 ( vmcid: 0x1000 minor code: 1108 )
| 原因 | オブジェクト直列化仕様違反の不正なValueが指定され、java.lang.IllegalAccessExceptionが発生した |
| 対策 | 指定したValueがjava.io.Serializableを実装していない等、不正でないか確認してください。 |
- ・マイナーコード 1330446337 ( vmcid: OMG minor code: 1 )
| 原因 | 未知のユーザ例外が発生 |
| 対策 | ユーザコードでなんらかの例外やエラーが発生しました。サーバ側のログなどで発生した例外を確認してください。 |
- ・マイナーコード 1330446338 ( vmcid: OMG minor code: 2 )
| 原因 | 未知のシステム例外が発生 |
| 対策 | 標準のシステム例外ではない例外が発生しました。サーバ側のログなどで発生した例外を確認してください。 |
INITIALIZE
- ・マイナーコード 5007 ( vmcid: 0x1000 minor code: 911 )
| 原因 | java.io.IOExceptionが発生した |
| 対策 | WebOTXのサービス、ドメインが起動しているか、ObjectSpinnerサービスが起動しているか、また、ネットワークの状態や、ホスト名が解決できているかどうかなどについて確認してください。 |
- ・マイナーコード 5036 ( vmcid: 0x1000 minor code: 940 )
| 原因 | 不正なSSLPortが指定された |
| 対策 | SSLを用いた通信で使用するポート番号に、不正な値が指定されていないか確認してください。 |
- ・マイナーコード 5037 ( vmcid: 0x1000 minor code: 941 )
| 原因 | 未知のホストが指定された |
| 対策 | ホスト名が正しく指定されているか、DNSなどによるホスト名解決で正しく検索可能かを確認してください。 |
- ・マイナーコード 5044 ( vmcid: 0x1000 minor code: 948 )
| 原因 | プロパティに不正な値が指定された |
| 対策 | Integerを指定すべきプロパティに文字列が指定された等、不正な値が設定されています。プロパティの設定値を確認してください。 |
- ・マイナーコード 5084 ( vmcid: 0x1000 minor code: 988 )
- ・マイナーコード 5085 ( vmcid: 0x1000 minor code: 989 )
- ・マイナーコード 5086 ( vmcid: 0x1000 minor code: 990 )
| 原因 | ローカルホスト名が不正 |
| 対策 | OSのホスト名の設定を確認してください。 |
- ・マイナーコード 5173 ( vmcid: 0x1000 minor code: 1077 )
| 原因 | SSLの初期化に失敗した |
| 対策 | SSL関連の設定が正しいか、SSLに必要なライブラリがCLASSPATHに含まれているかを確認してください。 |
MARSHAL
- ・マイナーコード 5001 ( vmcid: 0x1000 minor code: 905 )
| 原因 | メッセージ ヘッダ内に不正な Magic識別子があった |
| 対策 | ルータやハブなどにおいて、ネットワーク障害が発生していないか、もしくは、クライアントのポート番号指定の誤りにより、CORBAクライアント以外のクライアントからリクエストを行っていないかを確認してください。 |
- ・マイナーコード 5002 ( vmcid: 0x1000 minor code: 906 )
| 原因 | メッセージ ヘッダ内に未サポートのGIOP バージョンが指定されていた |
| 対策 | ルータやハブなどにおいて、ネットワーク障害が発生していないかを確認してください。 |
- ・マイナーコード 5003 ( vmcid: 0x1000 minor code: 907 )
| 原因 | メッセージ ヘッダ内に未サポートのIIOP バージョンが指定されていた |
| 対策 | ルータやハブなどにおいて、ネットワーク障害が発生していないかを確認してください。 |
- ・マイナーコード 5006 ( vmcid: 0x1000 minor code: 910 )
| 原因 | 受信したメッセージの読み込みに失敗した |
| 対策 | サーバとクライアントのインターフェース(IDL)の定義が合っていない可能性があります。サーバもしくはクライアントのどちらか一方のファイルだけを更新したことで、アプリケーションのファイルのバージョンが合っていない状態となっていないかを確認してください。 |
- ・マイナーコード 5007 ( vmcid: 0x1000 minor code: 911 )
| 原因 | java.io.IOExceptionが発生した |
| 対策 | サーバマシンもしくはWebOTXのシステム/サービスが起動しているかを確認してください。 |
- ・マイナーコード 5141 ( vmcid: 0x1000 minor code: 1045 )
| 原因 | ユーザコードの実行中にランタイム例外が発生した |
| 対策 | サーバ側のログなどで発生した例外を確認してください。 |
- ・マイナーコード 5185 ( vmcid: 0x1000 minor code: 1089 )
- ・マイナーコード 5186 ( vmcid: 0x1000 minor code: 941 )
- ・マイナーコード 5206 ( vmcid: 0x1000 minor code: 1110 )
| 原因 | java.lang.ClassNotFoundExceptionが発生した |
| 対策 | 使用しているクラスがCLASSPATHに含まれているかを確認してください。 |
- ・マイナーコード 5207 ( vmcid: 0x1000 minor code: 1111 )
| 原因 | public default constructorを持たないSerializableをアンマーシャルしようとしたが、ospijniのDLLをロードできなかったため、アンマーシャルできなかった |
| 対策 |
- Object Broker JavaTM は JNI を使用しています。Object Broker JavaTM は次の JNI ライブラリをロードします。
- Windows
- C:\Program Files\NEC\WebOTX\ObjectBroker\bin\ospijni.dll
- HP-UX (PA-RISC)
- /opt/ObjectSpinner/lib/libospijni.sl
- その他の UNIX
- /opt/ObjectSpinner/lib/libospijni.so
- Object Broker JavaTM の実装クラス群を -Xbootclasspath オプションに指定して java コマンドを実行した場合、以下のいずれかの設定が必要です。
- sun.boot.library.path システムプロパティに、JNI ライブラリが格納されているディレクトリを追加する
- (sun.boot.library.path システムプロパティには、その JavaVM が必要とする JNI ライブラリのディレクトリをすべて指定する必要があります)
- JavaVM が必要とする JNI ライブラリを以下のディレクトリにコピーする (UNIX の場合はシンボリックリンクでも可)
- Windows
- <JDK>\jre\bin (JRE の場合は <JRE>\<VERSION>\bin)
- UNIX
- <JDK>/jre/lib/<HW> (JRE の場合は <JRE>/lib/<HW>)
- ※<JDK>は使用するJDKのインストールディレクトリ、<JRE>は使用するJREのインストールディレクトリ、<VERSION>は使用するJREのバージョンを表します。<HW>はハードウェアによってディレクトリ名が異なります。
|
- ・マイナーコード 5208 ( vmcid: 0x1000 minor code: 1112 )
| 原因 | finalフィールドを持つSerializableをアンマーシャルしようとしたが、ospijniのDLLをロードできなかったため、アンマーシャルできなかった |
| 対策 | マイナーコード 5207 ( vmcid: 0x1000 minor code: 1111 )の 対策 を参照してください。 |
- ・ マイナーコード 1330446337 ( vmcid: OMG minor code: 1 )
- 原因が複数考えられます。
| 原因 | valueファクトリが見つからない |
| 対策 | 使用しているクラスがCLASSPATHに含まれているかを確認してください。 |
| 原因 | クライアントとサーバでJDKのバージョンが一致していない |
| 対策 | クライアントとサーバでJDKのバージョンが一致しているかを確認してください。 |
OBJ_ADAPTER
- ・マイナーコード 5106 ( vmcid: 0x1000 minor code: 1010 )
| 原因 | POAマネージャがinactive状態である |
| 対策 | POAマネージャが活性化されているか確認してください。 |
- ・マイナーコード 5179 ( vmcid: 0x1000 minor code: 1080 )
| 原因 | 指定されたServantManagerが不正 |
| 対策 | RETAINポリシであればServantActivator、NON_RETAINポリシであればServantLocatorインタフェースを実装したServantManagerを利用してください。 |
- ・マイナーコード 1330446337 ( vmcid: OMG minor code: 1 )
| 原因 | POAがアクティブでない |
| 対策 | POAが活性化されているか確認してください。 |
OBJECT_NOT_EXIST
- ・マイナーコード 5112 ( vmcid: 0x1000 minor code: 1016 )
| 原因 | オブジェクトが活性化されていない |
| 対策 | サーバオブジェクトが活性化されているか確認してください。 |
NO_IMPLEMENT
- ・マイナーコード 1330446337 ( vmcid: OMG minor code: 1 )
| 原因 | ローカルなvalue実装が見つからない |
| 対策 | 使用しているクラスがCLASSPATHに含まれているかを確認してください。 |
INV_OBJREF
- ・マイナーコード 5137 ( vmcid: 0x1000 minor code: 1041 )
BAD_PARAM
- ・マイナーコード 5018 ( vmcid: 0x1000 minor code: 922 )
| 原因 | 要素の範囲外のインデックスが指定された |
| 対策 | 定義した配列などの大きさと、引数などに指定した値を確認してください。 |
- ・マイナーコード 5034 ( vmcid: 0x1000 minor code: 938 )
| 原因 | 指定されたサーバオブジェクトはインターフェースをサポートしていない |
| 対策 | オブジェクトとインターフェースの型が一致しているかを確認してください。 |
- ・マイナーコード 5187 ( vmcid: 0x1000 minor code: 1091 )
| 原因 | 不正なvaluetype(StreamableValue、CostomValue以外)が指定された |
| 対策 | valuetypeの実装を確認してください。 |
- ・マイナーコード 5241 ( vmcid: 0x1000 minor code: 1145 )
| 原因 | 指定した全ての名前サーバにリファレンスが登録されていない |
| 対策 | 接続先の名前サーバおよびCNSの設定を確認してください。また、リファレンスが登録されているかどうかを確認してください。 |
- ・マイナーコード 5242 ( vmcid: 0x1000 minor code: 1146 )
| 原因 | 指定した名前サーバにリファレンスが登録されていない |
| 対策 | 接続先の名前サーバおよびCNSの設定を確認してください。また、リファレンスが登録されているかどうかを確認してください。 |
- ・マイナーコード 5243 ( vmcid: 0x1000 minor code: 1147 )
| 原因 | 複数の名前サーバに対する要求で異なるシステム例外が発生した |
| 対策 | 名前サーバおよびCNSが正常に起動しているかを確認してください。 |
- ・マイナーコード 1330446344 ( vmcid: OMG minor code: 8 )
| 原因 | 指定されたURLアドレスが正しくない |
| 対策 | URLに記述したホスト名、ポート番号、サービス名、オブジェクト名が正しいかどうか、名前サービスもしくはCNSが正常に起動しているかを確認してください。 |
NO_PERMISSION
- ・マイナーコード 5228 ( vmcid: 0x1000 minor code: 1132 )
- 原因が複数考えられます。
| 原因 | CSIv2のアクセス判定で否認された |
| 対策 | 指定した認証情報の内容を確認してください。 |
| 原因 | CSIv2のコールバックが正常に登録されていない |
| 対策 | EJBコンテナが正常に動作できていない可能性があります。WebOTXのログ(${INSTANCE_ROOT} /logs 配下)を採取の上、開発元にお問い合わせください。 |
BAD_OPERATION
- ・マイナーコード 5041 ( vmcid: 0x1000 minor code: 945 )
| 原因 | このオペレーションは存在しない |
| 対策 | クライアントとサーバでインターフェース(IDL)の定義が合っているかを確認してください。 |
- ・マイナーコード 5256 ( vmcid: 0x1000 minor code: 1160 )
| 原因 | リフレクションで構築したTieのメソッドのデータの中に、呼び出すべきメソッドが見つからない |
| 対策 | EJBサーバ側のリモートインタフェースの定義がクライアント側のものと同じかを確認してください。 |
3.3.2 Object Broker C++例外一覧
- Object BrokerC++で発生する例外ごとに、マイナーコード別の原因と対策を一覧にしています。
BAD_PARAM
- ・マイナーコード 1025
| 原因 | ホスト名が正しくない。あるいはhostsファイル、DNSなどでIPアドレスを知ることができない |
| 対策 | オブジェクトリファレンスに含まれているホスト名がクライアント側でIPアドレスに変換できていない可能性があります。ネットワークの設定を確認してください。オブジェクトリファレンスには"マシン名.ドメイン名"で登録されている状態で、クライアントを起動したホストが"マシン名"でなければ変換できない設定になっているなどが考えられます。
|
COMM_FAILURE
- ・マイナーコード 1186
| 原因 | コネクションがリセットされた(ECONRESET) |
| 対策 | 高負荷によりconnectに失敗している可能性があります。サーバ側のオプション設定でListenBackLogの値を大きくしてください。
|
INV_OBJREF
- ・マイナーコード 1036
| 原因 | accept用ソケット作成に失敗した。 |
| 対策 | ポート番号が他のプロセスで使用されていないかを確認してください。問題ない場合、ホスト名が正しく指定されているか、DNSなどによるホスト名解決で正しく検索可能かを確認してください。 |
NO_PERMISSION
- ・マイナーコード 1159
| 原因 | 要求を行ったクライアントホストからのサーバプロセスの自動起動は禁止されている |
| 対策 | クライアントマシンからの自動起動が許可されていません。サーバマシンのoadの設定を変更してください(actallowファイルにクライアントマシン名を追加します)。
|
- ・マイナーコード 1160
| 原因 | このサーバプログラムの自動起動は禁止されている |
| 対策 | ObjectBrokerは、confディレクトリの下にあるexeallowというファイルなどによって自動起動を制限することができます。設定を変更してください。自動起動についての設定をしていない場合にはサーバが異常終了している可能性があります。該当するサーバプロセスの確認を行い、サーバが終了している場合には再起動を行ってください。
|
- ・マイナーコード 1161
| 原因 | 自動起動サーバで相対パスは許されていないSSLサーバへの接続時にも発生する場合あり(ポート番号が未指定のサーバの場合)サーバが起動しているかを確認してください)
|
| 対策 | サーバへのパスに"/../"を含んでいる可能性があります。オプション設定のOadAllowRelativePathにtrueを設定すれば回避できますが、絶対パスによる指定に変更することをおすすめします。パスの指定方法を間違っている可能性があります。たとえばWindows上で動作するオブジェクトに"/dir1/dir2/servername"のようなパスを指定した可能性があります。パスの指定方法が合っているか確認してください。
|
NO_RESPONSE
- ・マイナーコード 1027
| 原因 | コネクションが失われた。ネットワーク不通、サーバホストダウン、サーバプロセス終了など |
| 対策 | 活性化通知後、サーバがダウンしたか、もしくは、終了した可能性があります。パーシステントサーバならば再起動してください。ソケットを再利用する設定になっていた場合、サーバ終了後にクライアントが行った最初のオブジェクト呼び出しがエラーになります。この場合、再度呼び出すと正常に通信が行われます。 |
- ・マイナーコード 1080
| 原因 | 指定されたホスト上にインプリメンテーションが存在しない。あるいは、ブロードキャストを用いて探したけれどもインプリメンテーションが見つからなかった。 |
| 対策 | 指定されたホスト上で名前サーバが起動しているか確認して下さい。 |
- ・マイナーコード 1141
| 原因 | コネクションの作成でタイムアウトした |
| 対策 | 呼び出したパーシステントサーバを起動していない可能性があります。サーバが動作しているか確認してください。サーバが起動しているかを確認してください。起動している場合は、コネクションタイムアウトの設定を変更してください。
|
- ・マイナーコード 1148
| 原因 | recvでタイムアウトした |
| 対策 | ネットワークの設定が間違っている可能性があります。ホスト名からIPアドレスが参照できるようにネットワーク(/etc/hosts等)の設定を行ってください。サーバの処理が滞っていないか、またはサーバが動作しているかを確認してください。問題がなければ、タイムアウト時間の設定を変更してください。
|
- ・マイナーコード 1186
| 原因 | コネクションがリセットされた(ECONRESET) |
| 対策 | sendやrecvでWSAECONNRESET例外が発生しました。活性化通知後、サーバがダウンしたか、もしくは、終了した可能性があります。パーシステントサーバならば再起動してください。ソケットを再利用する設定になっている場合、サーバ終了後にクライアントが行った最初のオブジェクト呼び出しがエラーになります。この場合、再度呼び出すと正常に通信が行われます。 |
TRANSIENT
- ・マイナーコード 1211
| 原因 | サーバがコネクションをクローズした |
| 対策 | サーバからのCloseConnectionメッセージを受信しました。サーバが停止している可能性があります。
|
OBJ_ADAPTER
- ・マイナーコード 1140
| 原因 | サーバの起動に失敗した |
| 対策 | 自動起動サーバの実行ファイルがない可能性があります。実行ファイル削除したり、ディレクトリや実行ファイルの名前を変更していないか確認してください。インプリメンテーション登録時に、自動起動サーバの実行ファイルへのパスを間違えた可能性があります。パスが間違っていないか確認してください。間違っている場合は登録しなおしてください。
|
3.4 JavaVMのスレッドダンプ取得
-
WebOTXが起動中にストール状態になる、または、コマンドからの応答がなく停止できない状態など、WebOTXが無応答状態に陥った場合には以下の手順でJavaVMのスレッドダンプを取得し開発元に問い合わせを行ってください。
スレッドダンプの取得方法には以下のようなものがあります。
- 以上の取得方法について説明します。
3.4.1 統計レポート出力コマンドを利用した取得方法
- 運用管理コマンドを使用して、Javaプロセスに対する様々な監視項目をレポート形式で出力できます。
以下の方法でスレッドダンプを採取します。
取得方法
- 次のコマンドを実行して下さい。コンソール上にスレッドダンプが出力されます。
otxadmin> generate-jvm-report --type thread <サーバ名>
<サーバ名>には、情報取得の対象となるサーバ(Javaプロセス)の名前を指定します。
サーバ名は次のようになります。
* ドメインに対するエージェントプロセス : server
なお、<サーバ名>が省略された場合は "server" がデフォルトとして指定されます。
詳しい取得方法については、運用編-3.運用と操作-ドメインの運用の
「4.11.3 統計レポート出力」の「スレッド情報の表示」を参照してください。
3.4.2 診断サービスを利用した取得方法
- 診断サービスという、障害解析のための情報収集機能に、スレッドダンプを取得する機能があります。
以下の方法でスレッドダンプを採取します。
取得方法
- 運用管理ツール、もしくは次のコマンドにてスレッドダンプ取得の属性値をtrueとします。
otxadmin> set server.diagnostic-service.capture-thread-dump=true
- 運用管理ツールの診断レポートの生成を実行するか、次のコマンドで診断サービスを実行して下さい。
・ドメインに対するエージェントプロセスが起動している場合
otxadmin> generate-diagnostic-report <対象ドメイン名>
・ドメインに対するエージェントプロセスが起動していない場合
otxadmin> generate-diagnostic-report --local=true <対象ドメイン名>
診断サービスを実行すると、テキストファイルにスレッドダンプが出力されます。
詳しい取得方法については、運用編-3.運用と操作-診断サービスの
「2. 診断サービスの実行」を参照してください。
3.4.3 各OS固有の取得方法
UNIXとWindowsについて、それぞれ以下のような手順でスレッドダンプを取得します。
3.4.3.1 UNIXのスレッドダンプ
- 以下の手順でスレッドダンプを採取します。
取得方法
- ドメインのJavaVMを特定します。
psコマンドによりドメインのJavaVMを特定します。psコマンドの結果では、他のjavaプロセスとの区別がつきにくいためJavaVMに指定された-Xオプションを手がかりにプロセスの特定を行ってください。
ps -exf |grep java |grep ドメイン名 |grep ' -X'
ドメインのJavaVMにはデフォルトインストールで以下のオプションが引数に指定されています。
-server -Dwebotx.funcid=agent -Ddomain.name=domain1 -Xms64m -Xmx512m -XX:NewRatio=2
- 特定したプロセス番号に対して kill -QUIT を実行します。
無限ループによる障害を検出するために、数秒間隔で複数回実行するようにしてください。
kill -QUIT <pid>
スレッドダンプが/opt/WebOTX/domains/ドメイン名/logs/server.logに出力されます。
3.4.3.2 Windowsのスレッドダンプ
-
Windowsでは、Javaプロセスに対して Ctrl+Break キーを送信することでスレッドダンプが出力されます。しかし、WebOTXはサービスとして起動されているために通常ではスレッドダンプの取得は行えません。スレッドダンプを出力させるようにするには以下の設定を行うことで取得できます。
-
ドメインを再起動する必要があるため再現性のある問題に対して有効です。ただし、この設定をすることによりドメインの起動時にデスクトップ上にコンソールが表示されます。
この状態でログオフを行うとWindowsの仕様によりドメインプロセスが停止してしまいます。そのため、調査中はログオフを行わないようにしてください。また、障害調査以外の通常運用時は設定を元にもどすようにしてください。
-
(注)タスクスケジューラからWebOTXを起動する運用の場合、Windowsの仕様によりコンソールが表示されないことがあります。
この場合は、Windows標準の「AT」コマンド(「interactive」オプション指定が必要)での代用をご検討ください。
設定方法
- コンソール表示を有効にする。
ドメイン起動時に以下のコマンドによりコンソール出力設定を有効にしてください。
server.log-service.alloc-console=true
- ドメインを再起動し、javaw.exeのコンソールが表示されることを確認してください。
- 表示されたコンソールをアクティブな状態にしてCtrl + Breakを送信してください。
Ctrl + Break を送信したタイミングのスレッドダンプが ${INSTANCE_ROOT}/logs/server.log に出力されます。
設定解除方法
- コンソール表示を無効にする。
ドメイン起動時に以下のコマンドによりコンソール出力設定を無効にしてください。
server.log-service.alloc-console=false
- ドメインを再起動し、javaw.exeのコンソールが表示されないことを確認してください。
3.5 ドメインの強制停止
-
WebOTXエージェントプロセスが何らかの原因でストールもしくは異常終了した場合に、WebOTXで起動された各サービス(Agent、JMS、Webサーバ、TPモニタ・マネージャ、Transactionサービス、ObjectBrokerサービス)のプロセスが残存することがあります。運用管理コマンドを使用し、以下の手順でドメインの強制停止を行ってください。
3.5.1 停止方法
- 以下の手順でドメインを強制停止します。
強制停止方法
- stop-domainの--forceオプションと--wait_timeoutオプションを指定して、該当ドメインを停止してください(domain1の部分がドメイン名を表します)。
- 例)
- otxadmin stop-domain --force --wait_timeout 180 domain1
- --wait_timeoutオプション指定時は指定した時間[秒]だけ通常停止を試みた後、強制停止処理を実行します。
- --wait_timeoutオプションを指定しない場合は--wait_timeoutオプションの既定値として600[秒]が設定されます。
- --forceオプション指定時のログは
- ${AS_INSTALL}/domains/domain1/logs/agent/webotx_prcstop.log に出力されます。