Java VMを起動する際のオプション“-XX:+JavaMonitorsInStackTrace”の「-XX」、および、それに指定されている「+JavaMonitorsInStackTrace」の意味について教えてください。
- Java VMを起動する際のオプション“-XX:+JavaMonitorsInStackTrace”の「-XX」、および、それに指定されている「+JavaMonitorsInStackTrace」の意味について教えてください。
- 「-XX」で開始されるjavaのオプションは、JDK 1.3.0以降でサポートされているJava VM(HotSpot VM)用のオプションです。将来に渡ってサポートされる保証がないため、一般に公開されていません。
-XX:+JavaMonitorsInStackTraceは、JDK 1.3系でJavaのスレッド情報にオブジェクトの占有、解放待ちを示す情報を付加させるオプションです。
例えば、通常のjavaコマンド実行では、フルスレッドダンプのスタックトレースが、
"Thread-1" prio=1 tid=0x80bbea0 nid=0x68f1 waiting for monitor entry [0xbe7ff000..0xbe7ff8c0]
at TestA.method_a2(Test.java:14)
at TestB.method_b1(Test.java:23)
at Thread2.run(Test.java:54)
のようになりますが、-XX:+JavaMonitorsInStackTraceを付加して実行することにより、
"Thread-1" prio=1 tid=0x80bbea0 nid=0x68f1 waiting for monitor entry [0xbe7ff000..0xbe7ff8c0]
at TestA.method_a2(Test.java:14)
- waiting to lock <436aad90> (a TestA)
at TestB.method_b1(Test.java:23)
- locked <436ab978> (a TestB)
at Thread2.run(Test.java:54)
なお、-XX:+JavaMonitorsInStackTraceはJDK 1.3系で有効であり、JDK 1.2.2ではこのオプションは受け入れられません。JDK 1.2.2ではスレッドダンプの形式が異なるものの、対応する情報はデフォルトで出力されているため、このオプションは指定しないでください。
また、JDK 1.4系では、-XX:+JavaMonitorsInStackTraceはデフォルトとなっていますので、指定する必要はありません。したがって、JDK 1.3系に閉じて指定してください。製品・サービス区分 Interstage 製品・サービス情報 対象製品 Interstage Application Server バージョン V8, V7, V6, V5, V4, V3 プラットフォーム Windows, Solaris, Linux アンサー種別 共通