jinfoでjsadebugd(リモートデバッグサーバー)に接続する場合、以下のオプションは使用できません。
-flag オプション
jinfoでcoreファイルを対象とする場合、以下のオプションは使用できません。
-flag オプション
jinfoで表示される以下の情報は、サポート対象外です。
“オプションなし”で実行した場合に出力される“VM Flags”
“-flags”オプションで実行した場合に出力される“VM Flags”
jmapでjsadebugd(リモートデバッグサーバー)に接続する場合、以下のオプションは使用できません。
オプションなし
-histo:live オプション
-dump:live オプション
jmapでcoreファイルを対象とする場合、以下のオプションは使用できません。
-histo:live オプション
-dump:live オプション
JDK6とJDK7で、インターン(intern)された文字列情報をjmapで表示する場合のオプションが異なります。
JDK6: -permstat オプション
JDK7: -heap オプション
参照
インターンされた文字列に関しては、以下のOracleドキュメントを参照してください。
JDK6の場合
http://docs.oracle.com/javase/jp/6/api/java/lang/String.html#intern()
JDK7の場合
http://docs.oracle.com/javase/jp/7/api/java/lang/String.html#intern()
Windows/Linuxにおいて、jstackを使用する場合、以下のオプションは使用できません。
-m オプション
Solarisにおいて、jstackでjsadebugd(リモートデバッグサーバー)に接続する場合、以下のオプションは使用できません。
-m オプション
jstatを使用する場合、以下のオプションは使用できません。
-version オプション
JavaプログラムがWindowsサービスとして動作している場合、使用できません。
jvisualvm を使用する場合、画面に日本語文字が正しく表示されない場合があります。
その場合は、以下の対処を実施してください。
fontconfigによる以下のパターンマッチング結果で、一番最初に日本語フォントがリストされるように環境設定してください。
sans:weight=regular:slant=roman:lang=ja-JP |
例
fc-matchコマンドによるパターンマッチング結果の確認方法
fc-matchコマンドで、パターンのマッチング結果を検索し、日本語フォントが出力されることを確認します。fc-matchコマンドの詳細については、manコマンドでfc-match(1)を参照してください。
$fc-match sans:weight=regular:slant=roman:lang=ja-JP |
例
「.fonts.conf」ファイルによるfontconfigのパターンマッチング設定方法
日本語フォントがパターンマッチングの先頭になるように「.fonts.conf」ファイルを作成し、jvisualvmを起動するユーザのホームディレクトリに配置します。
なお、「.fonts.conf」ファイルは、jvisualvmだけでなく、fontconfigを使用するその他のアプリケーションにも影響しますので、注意してください。
.fonts.confの詳細については、manコマンドでfonts-conf(5)を参照してください。
「.fonts.conf」ファイルの例
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- ~/.fonts.conf for per-user font configuration --> <fontconfig> <match target="pattern"> <!-- Condition --> <test name="family" compare="contains"> <string>sans</string> </test> <test name="weight" compare="contains"> <const>regular</const> </test> <test name="slant" compare="contains"> <const>roman</const> </test> <test name="lang" compare="contains"> <string>ja-JP</string> </test> <!-- Insert "ja" into list of "lang". --> <edit name="lang" mode="prepend_first"> <string>ja</string> </edit> <!-- Insert font name explicitly into list of "family". --> <edit name="family" mode="prepend_first"> <string>VL PGothic</string> </edit> </match> <match target="pattern"> <!-- Condition --> <test name="family" compare="contains"> <string>sans</string> </test> <test name="weight" compare="contains"> <const>regular</const> </test> <test name="slant" compare="contains"> <const>roman</const> </test> <test name="lang" compare="contains"> <string>ja</string> </test> <!-- Insert "ja" into list of "lang". --> <edit name="lang" mode="prepend_first"> <string>ja</string> </edit> <!-- Insert font name explicitly into list of "family". --> <edit name="family" mode="prepend_first"> <string>VL PGothic</string> </edit> </match> </fontconfig> |
GNOMEなどのデスクトップ環境の設定を変更し、デフォルトフォントを日本語フォントに設定してください。
例
RHEL7上でGNOMEデスクトップ環境を使用している場合のデフォルトフォントの設定方法
Tweak Toolを起動する。
[フォント] > [デフォルトのフォント] を選択する。
日本語フォントを選択する。
RHEL7 上で 32ビットモードのJDKを使用している場合に、jvisualvmで日本語を正しく表示するためには、インストールが必要なライブラリがあります。
詳細については、“インストールガイド”の“特定の機能に関する注意事項”の“JDK/JRE”を参照してください。
以下の条件の場合、ローカルで動作するJavaプログラムにjvisualvmで接続しようとすると、jvisualvmのウィンドウ右下に警告マークが表示され、Javaプログラムに接続できません。なお、警告マークをクリックし、警告の詳細を表示すると、“java.lang.ClassNotFoundException”が表示されます。
[条件]
JDK6を使用している。
J2EE互換機能を使用するために、以下のファイルを作成している。
[Interstageインストールフォルダ]\jdk6\jre\lib\orb.properties
以下の“$DIR”はインストール時に指定する相対ディレクトリ名です。“$DIR”のシステム推奨名は“opt”です。
/$DIR/FJSVawjbk/jdk6/jre/lib/orb.properties
[対処]
ローカルで動作するJavaプログラムに対して、JMX接続を使用して接続してください。
例
対象JavaプログラムのJMXエージェントをポート番号50000番で有効にする場合
jvisualvm の接続対象のJavaプログラムを、JMXエージェントを有効にして起動します。
java -Dcom.sun.management.jmxremote.port=50000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false <アプリケーション名> |
※実際は改行せず、1行のコマンドとして実行してください。
jvisualvm を起動します。
[ファイル]メニューから[JMX接続を追加]を選択し、[JMX接続の追加]画面を表示します。
[接続]に以下を入力し、[了解]ボタンを押下します。
localhost:50000 |
アプリケーションウィンドウの[ローカル]に以下のJavaプログラムが表示されることを確認し、ダブルクリックします。
localhost:50000 |
jvisualvm を使用する場合、以下の情報はサポート対象外です。
概要タブの“JVMフラグ”
解析対象に巨大なサイズのヒープダンプを指定した場合、メモリ不足となる場合があります。
その場合、jvisualvmが使用するメモリ割り当てプールの最大値を調整してください。
例
メモリ割り当てプールの最大値を1024MBに指定して、JDK7 jvisualvmを使用する場合
[JDK7インストール先フォルダ名]\bin\jvisualvm.exe -J-Xmx1024m |
[JDK7インストール先フォルダ名]/bin/jvisualvm -J-Xmx1024m |
OQLコンソールは使用できません。
リモートマシン上で動作するJavaプログラムに対して、メモリーサンプラは使用できません。
セッションの違うJavaプログラム、またはWindowsサービスとして動作するJavaプログラムに対して、以下の機能は使用できません。
プロファイラ
メモリーサンプラ
上記以外の機能を使用するためには、JMX接続を使用してJavaプログラムに接続してください。
外部のネットワークと分離された安全な環境を除いて、JMX通信にはSSLの使用を推奨します。
jvisualvmでSSLを有効化する場合、システムプロパティを設定してjvisualvmを起動します。
設定が必要なシステムプロパティや、詳細な設定方法に関しては、JDKドキュメントの「監視および管理」から「JMX APIを使用する監視と管理」を参照してください。
jvisualvmの起動時に、システムプロパティを設定する場合は、-Jオプションを使用します。
例
システムプロパティを指定して、JDK7 jvisualvmを起動する場合
[JDK7インストール先フォルダ名]\bin\jvisualvm.exe -J-D[システムプロパティ]=[値] |
[JDK7インストール先フォルダ名]/bin/jvisualvm -J-D[システムプロパティ]=[値] |
RHEL7上では、jvisualvmのウィンドウを最大化すると、ウィンドウのメニューバーを正しく操作できない場合があります。
・マウスにて、ウィンドウタイトルの最大化ボタンをクリック
・マウスにて、ウィンドウタイトルをダブルクリック
・マウスにて、ウィンドウをデスクトップの上端にドラッグ
・キーボードにて、[Windows]+[↑]キーを押下
ウィンドウを広げたい場合は、ウィンドウの端か角をドラッグしてサイズを変更してください。
以下の条件の場合、ローカルで動作するJavaプログラムにjconsoleで接続しようとすると、 “java.lang.ClassNotFoundException”が表示され、ローカルで動作するJavaプログラムにjconsoleで接続できません。
[条件]
JDK6を使用している。
J2EE互換機能を使用するために、以下のファイルを作成している。
[Interstageインストールフォルダ]\jdk6\jre\lib\orb.properties
以下の“$DIR”はインストール時に指定する相対ディレクトリ名です。“$DIR”のシステム推奨名は“opt”です。
/$DIR/FJSVawjbk/jdk6/jre/lib/orb.properties
[対処]
ローカルで動作するJavaプログラムに対して、リモート監視を使用して接続してください。
例
対象JavaプロセスのJMXエージェントをポート番号50000番で有効にする場合
jconsole の接続対象のJavaプログラムを、JMXエージェントを有効にして起動します。
java -Dcom.sun.management.jmxremote.port=50000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false <アプリケーション名> |
※実際は改行せず、1行のコマンドとして実行してください。
リモート監視を使用して、jconsole を起動します。
jconsole localhost:50000 |
jconsole を使用する場合、以下の情報はサポート対象外です。
VMサマリータブの“VM引数”
セッションの違うJavaプログラム、またはWindowsサービスとして動作するJavaプログラムに対して、jconsoleを使用する場合、リモート監視を使用してJavaプログラムに接続してください。
SSLを使用せずにJavaプログラムに対してjconsoleを接続した場合、 以下のようなメッセージのダイアログが表示されます。
Secure connection failed. Retry insecurely? |
接続対象のJavaプログラムのプロセスID、ホスト名とポート番号などです。
ローカル監視を使用して接続する場合、または 外部のネットワークと分離された安全な環境で使用する場合、[Insecure connection]ボタンを押下して、Javaプログラムに接続してください。
安全が保証されていない環境で使用する場合、パスワードやSSLの設定を推奨します。設定方法は、JDKドキュメントの「監視および管理」から「JMX APIを使用する監視と管理」を参照してください。
RHEL7上で32ビットモードのJDKを使用している場合に、jconsoleで日本語を正しく表示するためには、インストールが必要なライブラリがあります。
詳細については、“インストールガイド”の“特定の機能に関する注意事項”の“JDK/JRE”を参照してください。
RHEL7上では、jconsoleのウィンドウを最大化すると、ウィンドウのメニューバーを正しく操作できない場合があります。
・マウスにて、ウィンドウタイトルの最大化ボタンをクリック
・マウスにて、ウィンドウタイトルをダブルクリック
・マウスにて、ウィンドウをデスクトップの上端にドラッグ
・キーボードにて、[Windows]+[↑]キーを押下
ウィンドウを広げたい場合は、ウィンドウの端か角をドラッグしてサイズを変更してください。
以下のオプションは使用できません。
-V オプション
JavaプログラムがWindowsサービスとして動作している場合、使用できません。
以下のオプションは使用できません。
VM.flags オプション
VM.flags -all オプション
VM.command_line オプション
JavaプログラムがWindowsサービスとして動作している場合、jcmdのオプションとしてメインクラス名は使用できません。
解析対象に巨大なサイズのヒープダンプを指定した場合、OutOfMemoryErrorとなるか、または読込みに時間がかかる場合があります。
その場合、jhatが使用するメモリ割り当てプールの最大値を調整してください。
例
メモリ割り当てプールの最大値を1024MBに指定して、JDK7 jhatを使用する場合
[JDK7インストール先フォルダ名]\bin\jhat.exe -J-Xmx1024m <ヒープダンプファイル名> |
[JDK7インストール先フォルダ名]/bin/jhat -J-Xmx1024m <ヒープダンプファイル名> |
注意
ヒープダンプのサイズによっては、メモリ割り当てプールの最大値を調整しても、長時間jhatから応答が返ってこない場合があります。
その場合は、jvisualvmを使用して解析してください。