Ubuntu Server Editionを実行していて、Tomcatのスレッドダンプを取得したいと思いました。
そこで、私は最初にどのPIDTomcatが使用しているかを調べようとしました。
$ jps -l
5809 sun.tools.jps.Jps
しかし、それはありませんか?
そこで、top
代わりに使用して、PID5730を見つけました。
次に、jstackを呼び出してスレッドダンプを取得しました。
$ sudo jstack -l 5730
5730: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
どうしたの?:-(
Jstackで説明されているようにCATALINA_TMPDIRをエクスポートしようとしましたが、JstatはJDK6u23へのアップグレードで動作を停止しましたが、何も変わりませんでした。
$ export CATALINA_TMPDIR=/tmp
$ sudo /etc/init.d/tomcat6 restart
* Stopping Tomcat servlet engine tomcat6
...done.
* Starting Tomcat servlet engine tomcat6
...done.
$ sudo jstack -l 5934 // new PID after restart
5934: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
アップデート:
私も試しsudo -u tomcat6 jstack -l -F 5730 > threaddumpexceptions2.txt
ましたが、コンソールに大量の例外が表示されるだけです。