この章では、Oracle JRockit Mission Controlおよびその機能の概要について説明します。
Oracle JRockit Mission Control Clientツール・スイートは、Oracle JRockit JVM R26.0.0で導入されました。Javaアプリケーションのモニター、管理、プロファイリング、メモリー・リークの解消などを行うツールが含まれています。この種のツールにつきもののパフォーマンスのオーバーヘッドは発生しません。
JRockit Mission Controlのパフォーマンス・オーバーヘッドが低いのは、JRockit JVMの通常の適応性のある動的な最適化の一部として収集されるデータを使用するためです。これにより、バイト・コード・インストゥルメンテーションを使用するツールがシステムの実行特性を変えるときに発生する可能性のあるHeisenberg異常の問題も解消されます。JRockit Mission Controlの機能は必要に応じて常に利用可能で、ツールの実行中にのみわずかなパフォーマンス・オーバーヘッドが発生します。
この節では、以下の項目について説明します。
インストール手順は、Oracle Technology NetworkにてOracle JRockitインストレーション・ガイドを参照してください。
JRockit Mission Control Clientの実行可能ファイルはJROCKIT_HOME/bin
にあります。このディレクトリがシステム・パスに登録されている場合は、コマンド(シェル)・プロンプトでjrmc
と入力するだけでJRockit Mission Controlを起動できます。
そうでない場合は、以下のように、実行ファイルのフル・パスを入力する必要があります。
JAVA_HOME\bin\jrmc.exe (Windows) JAVA_HOME/bin/jrmc (Linux)
Windowsでは、「スタート」メニューからJRockit Mission Controlを起動できます。
このトピックでは、JRockit Mission Controlについてのよくある質問とその回答を記載しています。
Webプロキシが構成されている場合、JRockit Mission Controlアプリケーションから追加のプラグインをインストールできません。Webプロキシが有効になっている場合、どのようにアプリケーションを起動すればよいですか。
プロキシのプロパティを設定し、次の手順でJRockit Mission Controlを起動します。
JAVA_HOME/bin/java -Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=proxyport [-Dhttp.proxyUser=user Dhttp.proxyPassword=password] -jar JAVA_HOME/missioncontrol/mc.jar
JRockit Mission Control Clientに接続できません。考えられる原因には何がありますか?
以下のことを考慮してください。
正しいプロトコルを使用しているかどうか
最も簡単な方法は、モニターするJRockit JVMのバージョンとJRockit Mission Controlクライアントを実行するJVMのバージョンは同じであるかどうかを確認することです。このオプションを使用できない場合、JRockit Mission Control Clientの接続ダイアログ・ボックスのラジオ・ボタンを使用して、使用するプロトコルを選択することもできます。1.4は、RMPを選択し、1.5とそれ以降は、JMXRMIを選択します。
前のバージョンのJRockit Mission Controlには、これらのラジオ・ボタンはありません。JRockit JVM 5.0インスタンスを1.4バージョンに接続するために、JMXサービスのURLを明示的に指定する必要があります。サービスURLは、次の形式で指定します。
service:jmx:rmp://<hostname>:<port>
以下に例を示します。
service:jmx:rmp://localhost:7091
正しいポートを開いているかどうか
JMX over RMIでは、2つのポートが使用されますが、そのうちの1つは事前に確認できません。
ファイアウォールによって通信が遮断されているかどうか
詳細は、第2章「JRockit Mission Controlの通信」を参照してください。
JRockit Mission Controlに接続しようとすると、JRockit Mission Controlが不明なIPまたはホスト名を使って通信しようとしていることを示すスタック・トレースが出力されます。
RMIで、使用するアドレスを特定する際に問題が発生することがあります。この問題には、次の原因が考えられます。
セキュリティ・マネージャでアクセス制限が設定されています。
マシンがマルチ・ホーム設定されていて、RMIが間違ったインタフェースを選択しています。
ホスト・ファイルの設定が間違っているか、ネットワーク関連の設定にいくつか問題があります。
問題が解決しない場合は、java.rmi.server.hostnameシステム・プロパティを指定してみてください。ただし、この操作により、JVMで実行中のアプリケーションが影響を受ける可能性があります。
起動時に、クラスが見つからないという例外が表示されます。
JRockit Mission Control Clientを起動するために正しいランチャを使用しているかどうかを確認します。使用できるのはJAVA_HOME/bin/jrmc
のみです
JRockit Mission Controlで、ローカルJVMが1つも見つかりません。
JRockit Mission Control Clientを起動するために正しいランチャを使用しているかどうかを確認します。使用できるのはJAVA_HOME/bin/jrmc
のみです
フライト記録にメソッド・プロファイリング情報が何も表示されません。どうしてですか?
JRockit Mission Control Clientのデフォルトでは、必要なイベントが記録されていない場合、タブにデータは表示されません。フライト記録のメソッド・プロファイリングが有効で、アプリケーションに負荷がかかっていたことを確認してください。JRockit JVMでスレッドがほとんどの時間、何も処理をしていなかった場合、サンプルは記録されません。
メモリー・リーク・ディテクタを使用しているときに、「傾向」表の「増加」列に何も表示されません。
アルゴリズムが動作するには3つ以上のデータ・ポイントを必要とし、データは、ガベージ・コレクションの古い領域のマーク・フェーズの一部として回収されます。データが何も表示されない場合は、このようなコレクションを開始するのに十分なガベージが回収されていない可能性があります。プロセスを迅速化するには、Memory Leakアプリケーションのツール・バーのごみ箱をクリックして、3回連続してガベージ・コレクションを行ってください。その際、次のコレクションを開始する前に、短い休止時間を置いてください。
JRockit Mission Control Clientのドキュメントは、ツールのインストールによりオンライン・ヘルプとして参照できます。
サポートについては、エンタープライズ・ライセンスの規定に従うものとします。
JRockit Mission Controlプラグインの改良方法に関するご提案や、開発環境における一般的な使用方法などの情報がありましたら、JRockitフォーラムにコメントを投稿してください。弊社では、こうした情報をもとに、これらのツールを今後どのように改良すればよいかを判断することができます。
アイデアやその他フィードバックは、Oracle Technology NetworkのJRockitフォーラム(http://forums.oracle.com/forums/forum.jspa?forumID=561
)にコメントを投稿してください。
フィードバックはOracle JRockit Mission Controlプラグインの開発チームで検討させていただきます。お寄せいただいたアイデアを参考にして、いっそう使いやすくなるようプラグインを改良していきます。これらのプラグインでのOracleの目標は、タスクを簡素化して、Oracle JRockit JVMでアプリケーションをできる限り円滑に実行できるようにすることです。