ハング検出ポリシーの構成

WebSphere® Application Server のハング検出オプションは、 デフォルトではオンに設定されています。 ご使用のアプリケーションと環境に対応するように、ハング検出ポリシーを構成して、 起こり得るハングの報告を可能にし、サーバーの障害を早期に検出することができます。 ハング・スレッドが検出されると、 WebSphere Application Server によって通知されるので、問題をトラブルシューティングすることができます。

始める前に

Java™ Platform, Enterprise Edition (Java EE) アプリケーションの共通エラーは、ハング・スレッドです。ハング・スレッドは、単純なソフトウェア障害 (無限ループなど) から生じることも、 より複雑な原因 (例えば、リソース・デッドロック) から生じることもあります。 コードが無限ループ内で実行している場合など、 スレッドが際限のないコード・パスを実行している場合には、 CPU 時間などのシステム・リソースは、このハング・トランザクションによって消費されることがあります。 あるいは、デッドロック・シナリオの場合と同様、 すべてのリソースが使用されていないにもかかわらず、 システムが無応答となる場合があります。 ユーザーまたはモニター・ツールがこの問題を報告しない限り、 システムは、無期限にこの機能低下した状態のままとなる可能性があります。

ハング検出ポリシーを使用すると、 作業単位が完了するには長すぎる時間を指定することができます。 スレッド・モニターは、 システム内のすべての管理対象スレッド (例えば、 Web コンテナー・スレッドおよびオブジェクト・リクエスト・ブローカー (ORB) スレッド) を検査することができます。 アプリケーションによって作成されたスレッドである、管理対象外のスレッドは、 モニターされません。詳しくは、Java Platform, Enterprise Edition アプリケーションでのハング・スレッドを参照してください。

このタスクについて

デフォルトでは、スレッド・ハング検出オプションは使用可能となっています。 ハング検出ポリシーの値を調整する、あるいは、ハング検出を完全に使用不可にするには:

手順

  1. 管理コンソールで、「サーバー」>「アプリケーション・サーバー」>「server_name」をクリックします。
  2. 「サーバー・インフラストラクチャー」の下の「管理」>「カスタム・プロパティー」をクリックします。
  3. 「新規」をクリックします。
  4. 以下のプロパティーを追加します。
    通知 説明
    名前 com.ibm.websphere.threadmonitor.interval
    選択されているアプリケーション・サーバーの管理対象スレッドに対して、問い合わせが行われる頻度 (秒数)。
    デフォルト 180 秒 (3 分)
    通知 説明
    名前 com.ibm.websphere.threadmonitor.threshold
    スレッドがハングしたと見なされるまでの、アクティブでいられる時間 (秒数)。 この時間より長くアクティブとして検出されたスレッドは、ハングとして報告されます。
    デフォルト 600 秒 (10 分)
    通知 説明
    名前 com.ibm.websphere.threadmonitor.false.alarm.threshold
    しきい値が自動的に引き上げられるまでに発生する false アラームの回数 (T)。 ハングとして報告されたスレッドが最終的に作業を完了すると、false アラームが発生する場合があります。こうしたイベントが多数発生することは、しきい値が小さすぎることを示しています。 ハング検出機能は、こうした状況に自動的に対応することができます。false アラーム T 回ごとに、しきい値 T が 1.5 の因数ずつ引き上げられます。自動調整を使用不可にするには、値をゼロ以下に設定します。
    デフォルト 100
    通知 説明
    名前 com.ibm.websphere.threadmonitor.dump.java

    このプロパティーは、dumpThreads 関数を呼び出します。ハング・スレッドが検出されて WSVR0605W メッセージが出力されるときに dumpThreads 関数が実行されるようにするには、true に設定します。javacore ダンプの スレッド・セクションを分析して、報告されたスレッドおよび他の関連スレッド の活動内容を判別できます。

    ハング・スレッドが検出されて WSVR0605W メッセージが出力されるときに dumpThreads 関数が実行されるようにするには、1 から Integer.MAX_VALUE までの範囲の整数値に設定します。この整数値は、dumpThreads の最大実行回数を示します。
    注: WSVR0605W メッセージをオフにするには、 com.ibm.websphere.threadmonitor.interval=0 と設定します。

    [AIX Solaris HP-UX Linux Windows][IBM i]デフォルトでは、dumpThreads 関数は javacore ダンプを作成します。このダンプの作成を無効にする方法については、トピック『スクリプトによるサーバー・プロセスにおけるスレッドのダンプ』を参照してください。このダンプの内容および影響について詳しくは、Java 診断ガイドを参照してください。

    [z/OS]デフォルトでは、dumpThreads 関数は、javacore ダンプ、ヒープ・ダンプ、および TDUMP を作成します。これらのダンプの作成を無効にする方法については、トピック『スクリプトによるサーバー・プロセスにおけるスレッドのダンプ』を参照してください。これらのダンプの内容および影響について詳しくは、Java 診断ガイドを参照してください。

    デフォルト false (0)
    通知 説明
    名前 com.ibm.websphere.threadmonitor.dump.java.track

    このプロパティーは、スレッドがハングしたままでいる間に、モニターが何回の間隔にわたって dumpThreads 関数を呼び出すのかを指定します。

    2 から com.ibm.websphere.threadmonitor.dump.java までの範囲の整数値に設定すると、 スレッドがハングしたままでいる間に、dumpThreads 関数が後続の何回かのモニター間隔にわたって実行されます。この整数値は、 ハング・スレッドのトラッキングのために dumpThreads が実行される最大回数を示します。例えば、値 2 に設定すると、 スレッド・モニターは dumpThreads をハング・スレッドに対して最大 2 回実行し、 スレッドが最初にハングしていると検出されたときに 1 回実行します。スレッド・モニターは、 次のスレッド・モニター間隔中にスレッドがハングしたままである場合は、dumpThreadsand をもう一度実行できます。

    このプロパティーは、 com.ibm.websphere.threadmonitor.dump.java プロパティーと一緒でないと使用できません。

    デフォルト (0) 間隔
  5. オプション: システム・アラームが実行されるスレッドのアクティビティーをモニターしたい場合は、以下の JVM 汎用引数をサーバー設定に追加します。
    通知 説明
    名前 -Dcom.ibm.websphere.alarmthreadmonitor.generate.javacore
    システム・アラーム・スレッドのハングが検出 されたときに javacore ダンプが作成されるようにするには、任意の値に設定します。javacore ダンプの スレッド・セクションを分析して、報告されたスレッドおよび他の関連スレッド の活動内容を判別できます。
    デフォルト 設定なし
    通知 説明
    名前 com.ibm.websphere.alarmthreadmonitor.checkinterval.millis
    システム・アラーム・スレッドに対して問い合わせが行われる頻度 (ミリ秒単位)。システム・アラーム・ハング・スレッドの検出を 無効にするには、値ゼロを設定します。最大インターバルは 600000 (10 分) です。
    デフォルト 10000 (10 秒)
    通知 説明
    名前 -Dcom.ibm.websphere.alarmthreadmonitor.threshold.millis
    10000 から 600000 (10 分) の間の整数値を設定します。 この引数は、システム・アラーム・スレッドが応答しないと見なされるまでの、 アクティブでいられる時間をミリ秒単位で指定します。 システム・アラーム・スレッドは、この時間よりも長く非アクティブであることが検出されると、 ハングしていると報告されます。
    デフォルト 10000 (10 秒)

    これらの引数をサーバー設定に追加するには、以下のアクションを実行します。

    1. 管理コンソールのサーバー設定ページにある「サーバー・インフラストラクチャー」の下で、「Java およびプロセス管理」 > 「プロセス定義」とクリックします。
    2. [z/OS]制御」を選択します。
    3. 「Java 仮想マシン」を選択します。
    4. 引数を JVM 汎用引数セクションに追加します。
  6. 適用」をクリックします。
  7. OK」をクリックします。
  8. 変更を保存します。 サーバーを再始動する前に、 ファイルの同期が実行されているかどうかを確認します。
  9. アプリケーション・サーバーを再始動して変更を有効にします。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=ttrb_confighangdet
ファイル名:ttrb_confighangdet.html