アプリケーションでメモリ不足エラーが発生したときにヒープダンプを取得するために、JBoss起動スクリプトにJVM起動オプションに-XX:+HeapDumpOnOutOfMemoryError
パラメーターを追加できると言われました。このデータがどこにダンプされるのだろうと思っていましたか?コンソールだけですか、それともログファイルですか?コンソールのみの場合、コンソールからUnixサーバーにログインしていない場合はどうなりますか?
Oracleのドキュメント が言っていることは次のとおりです。
デフォルトでは、上記の例のように、VMの作業ディレクトリにあるJava _pid。hprofというファイルにヒープダンプが作成されます。
-XX:HeapDumpPath=
オプションを使用して、代替ファイル名またはディレクトリを指定できます。たとえば、-XX:HeapDumpPath=/disk2/dumps
を指定すると、/disk2/dumps
ディレクトリにヒープダンプが生成されます。
このダンプは、UNIXコンソールから表示できます。
ヒープダンプのパスは、上記の変数を配置した直後に変数として提供されます。
例えば。:
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"
上記のパスのコンソールからダンプを表示できます。
「VMの作業ディレクトリ」が何を意味するのかを解読するのは難しいと感じました。私の例では、Java Service Wrapperプログラムを使用してjarを実行していました。ダンプファイルは、ラッパープログラムを配置したディレクトリに作成されました。 c:\ myapp\bin。私がこれを発見した理由は、ファイルが非常に大きくなる可能性があり、その場所を発見する前にハードドライブがいっぱいになるためです。
「-XX:HeapDumpPath」オプションを使用していない場合、デフォルトでJBoss EAP/Asの場合、ヒープダンプファイルは「JBOSS_HOME/bin」ディレクトリに生成されます。