javacore の収集

IBM® JDK の javacore や、IBM 以外の JDK のスレッド・ダンプを収集する場合、いくつかの方法があります。

javacore の収集

javacore ダンプ (スレッド・ダンプとも呼ばれる) は、アプリケーション・サーバーが作成する主要な問題判別文書の 1 つです。

  1. 以下のように、wsadmin を使用してプロファイル・ディレクトリーに javacore を生成します。
    1. Windows の場合:
      <PROFILE_DIR>¥bin¥wsadmin.bat [-host host_name] [-port port_number]
      [-user userid -password password] -c
      "$AdminControl invoke [$AdminControl queryNames WebSphere:name=JVM,process=server1,*]
      dumpThreads"
    2. UNIX (IBM JDKs) の場合:
      <PROFILE_DIR>>/bin/wsadmin.sh[-host host_name] 
      [-port port_number] [-user userid -password password] -c
      "¥$AdminControl
      invoke [¥$AdminControl queryNames WebSphere:name=JVM,process=server1,*]
      dumpThreads"
    注: AdminControl queryNames コマンドを囲む中括弧 [] は、コマンドの一部です。ホスト、ポート、ユーザーを囲む中括弧のようにオプション・パラメーターを示す括弧ではありません。 プロセス名 server1 は、ご使用の構成に合うように変更する必要があります。
  2. 以下のように、サーバー・プロセスに信号を送信することができます。
    1. Windows の場合:
      起動スクリプトを使用してサーバー・プロセスを開始し、プロセスに信号を渡す必要があります。 そのためには、サーバーを始動する前に特別なセットアップを行う必要があります。
      1. <PROFILE_DIR>¥bin¥startServer.bat server1 -script SERVER1.bat
      2. b. SERVER1.bat

        サーバー・プロセスがコマンド・ウィンドウで開始されます。 通常は中間 JVM プロセスによってサーバー・プロセスが開始されますが、ここではこの中間 JVM プロセスは使用されないため、ログを調べて、サーバーが正常に始動したことを確認する必要があります。

      3. <CTRL><BREAK>

        サーバー・プロセスが稼働しているコマンド・ウィンドウで <CTRL><BREAK> を実行します。 javacore が生成されます。

    2. UNIX (すべての JDK) の場合: kill -3 <pid>

      この <pid> は、WebSphere® Process Server のプロセス ID です。 IBM JDK の場合、javacore は <PROFILE_DIR> ディレクトリーに生成されます。

      IBM 以外の JDK の場合、スレッド・ダンプは native_stdout.log に書き込まれます。

  3. Windows コア・ファイルは、jvmdump を使用してダンプすることもできます。

    この方法の場合、サーバーを始動する前に特別なセットアップを行う必要はありません。 ただし、JVM チームから専用の実行可能ファイルを入手する必要があります。このプログラム (jvmdump.exe) が必要な場合は、jvmcookbook@uk.ibm.com までご連絡ください。 このプログラムを使用すると、JVM 内部で実行されているネイティブ・コードに関する追加情報を取得することができます。 ダンプの形式は、IBM javacore とは異なります。

    • jvmdump.exe <PID>
    • <WAS_HOME>>¥java¥jre¥bin¥jextract.exe <core.name.dmp>
    • <WAS_HOME>¥java¥jre¥bin¥jdumpview.exe
      • set dump <core.name.dmp>.zip
      • display thread

        ダンプ中に実行されている現行スレッドを表示します。

      • c. display thread *

        ダンプからすべてのスレッドを表示します。

    jdumpview ユーティリティーについて詳しくは、IBM Developer Kit and Runtime Environment, Java™ Technology Edition バージョン 5.0 の「Diagnostics Guide」を参照してください。