概要
プロセスグループに配備されたCORBAアプリケーションが動作中に、クラスローダーでデッドロックが発生し業務が動作不能になる。
影響のある製品
- WebOTX Application Server Foundation V8.4
- WebOTX Application Server Standard V8.4~V9.4
- WebOTX Application Server Enterprise V8.4~V9.5
上記バージョン以前も本問題は発生しますが、JDKによる回避手段が提示されていないため、WebOTX側だけを修正しても解決できません。
詳細
次の全ての条件を満たす場合に、プロセスグループ起動時、タイミング次第でデッドロックする問題です。
・Java の CORBA アプリケーションを利用
・共有コンポーネントを使用
・マルチスレッド(スレッド数を2以上で設定)
本件はJDKのカスタムクラスローダでデッドロックする問題に関連しています。
(参照URL:https://docs.oracle.com/javase/jp/7/technotes/guides/lang/cl-mt.html)
Java6以前をご利用の場合は、JDKによる回避手段が提示されていないためWebOTX側だけを修正しても解決できません。
本問題が発生しているかどうかは、プロセスグループを強制終了するとプロセスグループのログにスタックダンプと合わせてJava-level deadlockが検出された旨の出力があることで確認することができます。また、プロセスグループを強制終了する前に検出する方法としては、以下のコマンドを実行することでプロセスグループのログにスタックダンプを出力させることができ、そのログにクラスローダーでJava-level deadlockが検出された旨の出力があるかで確認することができます。
otxadmin> login --user <ユーザ名> --password <パスワード> --host <ホスト名> --port <対象ドメインの管理ポート>
otxadmin> invoke tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名 >.stackTrace
※本コマンドはプロセスグループが起動している状態で実行します。
対処方法
パッチの公開時期は現在検討中です。急ぎでパッチが必要な場合はご連絡ください。
回避方法
更新履歴
本サイトについてのご注意