MID Server のスレッドダンプとヒープダンプを取得Descriptionまれに、MID Server がインスタンスからメッセージを取得できない、または遅い場合は、スレッドダンプを取得してトラブルシューティングを行います。この記事では、その方法について説明します。MID Server へのログインアクセス権が必要であることに注意してください。 スレッドダンプとヒープダンプを取得する方法 最新の MID Server では、JRE バンドルに jstack と jmap が含まれています。最初に agent\jre\bin フォルダーに jstack と jmap があるかどうかを確認し、見つからない場合は、MID Server JRE と互換性のある JDK をダウンロードして、JDK からjstack.exe実行可能ファイルを取得します。間違った JDK バージョンをインストールすると、サポートされていない JVM バージョンの例外が発生する可能性があります。Oracle JDK の古いバージョン/パッチはこちら。例: 8u60 または 8u152。デフォルトのJDK/JREにjmapがインストールされていない場合は、jmapがバンドルされている既知のJDKを次に示します。https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_windows-x64_bin.zip注 : 上記の JDK をダウンロードする場合、MID Server の構成変更 (MID Server ランタイム環境の変更など) を行う必要はありません。以下のコマンドでは、ダウンロードしたJDKパスからコマンドを実行するだけです。(スレッドダンプを収集する場合)PSTools: https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx をダウンロードして解凍します。これを行う必要はないかもしれませんが、ローカル システムとして実行されるプロセスで jstack.exe を呼び出すには PsExec が必要です。これがデフォルトでしたが、MID Server が Windows サービスとして実行される場合、MID Server が非管理者サービス アカウントとして実行されることが多くなりました。タスクマネージャを開きます。[プロセス]タブで、イメージ名で並べ替え、[java.exe]プロセスを見つけます。[PID] 列の下のプロセス ID をメモします。[PID] 列が表示されない場合は、[表示] > [列の選択] に移動します...をクリックし、「PID」列を選択します。 複数の MID Server が実行されている場合は、各「java.exe」プロセスを右クリックしてから [プロパティ] を選択し、正しい MID Server プロセスを確認します。 (スレッドダンプを収集する場合)管理者としてコマンドプロンプトを開き、手順2でPSToolsが解凍されているディレクトリに移動します。MID Server サービスアカウントが「SYSTEM」の場合は、次のコマンドを実行します。 psexec -s "<path_to_jdk_install>\bin\jstack" -l PID_HERE >> <path_for_generated_file>\threadDump.txt MID Server サービスアカウントがユーザーの場合: psexec -u <username> "<path_to_jdk_install>\bin\jstack" -l PID_HERE >> <path_for_generated_file>\threadDump.txt (ヒープダンプを収集する場合)次のコマンドを実行します。 <path_to_jdk_install>\bin\jmap -dump:file=<path_for_generated_file>\heapDump.bin PID_HERE あるいは、メモリー不足例外時にヒープを自動的にダンプするには、/agent/conf/ ディレクトリーにある wrapper-override.conf ファイルに以下を追加して変更します。 "wrapper.app.additional.501=-XX:+HeapDumpOnOutOfMemoryError" OR "wrapper.java.additional.501=-XX:+HeapDumpOnOutOfMemoryError"。 警告: このパラメーターは、アクティブな監視を伴う短期間にのみ使用してください。OOM が再現され、ヒープダンプが生成されたらすぐに、パラメーターを削除する必要があります。このパラメーターを長期間そのままにしておくと、ディスク領域が使い果たされる可能性があります。 /agent/conf/wrapper.conf または /agent/conf/wrapper-override.conf ファイルに重複があってはなりません。 次に例を示します。 参照 jmap - メモリマップ – jmap の使用方法 jstack:スタックトレース – jstack の使用方法Release or Environment現在サポートされているすべてのリリース。Additional InformationKB0717248 JVMがメモリ不足になったときにMIDからヒープダンプを自動的に生成する方法 KB0746066 メモリー使用率が高い場合に MID Server ヒープダンプを分析する方法