この章では、Java Mission Control (JMC) とその機能の概要を説明します。
Java Mission Control クライアントには Java アプリケーションをモニターおよび管理するためのツールが付属していて、通常この種のツールにつきもののパフォーマンスオーバーヘッドが発生しません。
Java Mission Control のパフォーマンスオーバーヘッドの低さは、Java JVM の通常の適応型動的最適化の一部として収集されたデータを使用した結果です。これにより、バイトコードインストゥルメンテーションを使用するツールによってシステムの実行特性が改変された場合に発生する可能性のある、ハイゼンベルグ異常の問題も解消します。Java Mission Control 機能はオンデマンドでいつでも利用でき、パフォーマンスオーバーヘッドはツールの実行中にのみわずかに発生します。
このセクションには次のトピックに関する情報が含まれます。
Java Mission Control クライアントは、JVM に接続して JMC に含まれるツールを起動するためのアプリケーションです。クライアントの起動時に表示される JVM ブラウザでは、次のいずれかの方法でモニターする実行中 JVM を選択できます。
実行中 JVM に管理コンソールを接続します。管理コンソールを使って、実行中の JVM や Java アプリケーションをモニターできます。実行時に一部の JVM プロパティーを管理対象 Bean (MBean) 経由で変更することもできます。
アプリケーション実行時のすべての動作の記録を作成します。
JMC ツールは JMX エージェントを使って JVM と通信します。
Java Mission Control 用のプラグインです。
管理コンソール (JVM および Java アプリケーションの実行時モニタリングおよび管理用)
Java Flight Recorder (いつでも使用可能な、リアルタイムおよび過去のパフォーマンスのモニタリングおよびプロファイリング用)。
Java Mission Control クライアントを起動する際は、「Java Mission Control クライアントの起動」を参照してください。
JMC クライアント実行可能ファイルは、Java Development Kit (JDK) インストールパス (JAVA_HOME
) の bin
ディレクトリにあります。JAVA_HOME/bin
ディレクトリが PATH
環境変数内にある場合、コマンド行プロンプト (シェル) で jmc
と入力することで JMC クライアントを起動できます。それ以外の場合は、JMC 実行可能ファイルへのフルパスを指定する必要があります。
JAVA_HOME\bin\jmc.exe
(Windows)
JAVA_HOME/bin/jmc
(Solaris、Linux、OS X)
注: Windows の場合、「Start」メニューの「すべてのプログラム」の下の「Java Development Kit」フォルダに、JMC クライアント実行可能ファイルへのショートカットが追加されます。 |
JMC 起動ツールに JVM オプションを渡す
JMC は Java アプリケーションで、JMC クライアント実行可能ファイルはこのアプリケーション用の起動ツールです。JMC の起動は、JAVA_HOME/bin
ディレクトリにある jmc.ini
ファイル内で指定されたオプションによって制御されます。jmc.ini
ファイル内の -vmargs
オプションに対する引数は、JMC アプリケーションを実行する JVM に渡されるオプションとなります。これらのオプションは、この JVM の実行方法を制御するために指定できます。jmc.ini
ファイルを変更したくない場合は、コマンド行で jmc
コマンドの -vmargs
オプションに対する引数として JVM オプションを指定できます。
注:
|
独自の JVM オプションセットで JMC クライアントを起動する (jmc.ini
ファイルに指定されたものをオーバーライドする) には、次のコマンドを実行します (複数の引数は空白で区切ります)。
jmc -vmarg arguments
追加の JVM オプションで JMC クライアントを起動する (jmc.ini
ファイルに指定されたものにそれらを追加する) には、次のコマンドを実行します (複数の引数は空白で区切ります)。
jmc --launcher.appendVmargs -vmarg arguments
ワークスペースディレクトリを使用する
JMC クライアントの設定を別のコンピュータや別のユーザーにコピーしたり、アプリケーションごとに異なる定義済み設定を使用したりする場合には、JMC クライアントの起動時に、-data
コマンド行オプションを追加してワークスペースディレクトリを定義します。
jmc -data workspace-directory
OS X 上で JMC を実行する
OS X 上で JMC 実行可能ファイルを起動すると、「ターミナル」ウィンドウが開きます。JMC クライアントを閉じると、[Process completed]
というテキストの背後にターミナルが残ります。これを避けるには、ターミナルの環境設定を開いて「設定」タブを開き、使用するスキームを選択してから、「シェル」タブを選択して「シェルの終了時」オプションを「シェルが正常に終了した場合は閉じる」に変更します。
Java Mission Control クライアントのドキュメントは、ツールがインストールされるとオンラインヘルプとして入手できます。
Java Mission Control 用の Oracle Support サービスの資格がある場合は、Oracle Support に連絡して技術支援を受けることができます。次のタイプのライセンスには、Java Mission Control のサポートが含まれます。
Oracle Java SE Advanced
Oracle Java SE Suite
WebLogic Server Enterprise Edition
WebLogic Suite
Java Mission Control プラグインの改善方法に関する提案や、開発環境でのもっとも一般的な使用方法に関する情報がある場合は、Java Mission Control フォーラムにコメントを投稿してください。これらの情報は、将来これらのツールをさらに改善する際にどのような方法が最善であるかを弊社が理解するのに役立ちます。
アイデアやその他のフィードバックを提出するには、Mission Control エンジニアチームがモニターしている Java Mission Control フォーラム (https://forums.oracle.com/forums/forum.jspa?forumID=1419
) にコメントを投稿してください。
フィードバックは、Java Mission Control プラグインを設計している開発チームによって検討されます。Oracle は、収集されたアイデアを参考にし、プラグインがさらに使いやすくなるように改善します。これらのプラグインに関する Oracle の目標は、Java HotSpot VM 上でアプリケーションをできるだけスムーズに実行できるようにするためのタスクを単純化することです。
表 1-1 に、Java Mission Control クライアントで使用される一部の略語の一覧を示します。
表 1-1 Java Mission Control クライアントで使用される略語
略語 | 意味 |
---|---|
GC |
ガベージコレクション (メモリー管理) |
JDK |
Java Development Kit |
JDP |
Java Discovery Protocol |
JIT |
Just in Time (コンパイル) |
JMX |
Java Management Extensions |
JVM |
Java 仮想マシン |
MBean |
管理対象 Bean (Java) |
RCP |
リッチクライアントプラットフォーム (Eclipse) |
RMI |
Remote Method Invocation (Java) |
SSL |
Secure Socket Layer (通信) |
TLA |
スレッドローカル領域 (メモリー管理) |