." Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved. ." .TH jstatd 1 "05 Jul 2012" .LP .SH "名前" jstatd \- 仮想マシンjstatデーモン .LP .RS 3 .TP 2 o 形式 .TP 2 o パラメータ .TP 2 o 説明 .TP 2 o オプション .TP 2 o セキュリティ .TP 2 o リモート・インタフェース .TP 2 o 例 .TP 2 o 関連項目 .RE .LP .SH "形式" .LP .nf \f3 .fl jstatd [ \fP\f4options\fP\f3 ]\fP .br \f3 .fl \fP .fi .LP .SH "パラメータ" .LP .RS 3 .TP 3 options コマンドライン・オプション。オプションは任意の順序で指定できます。重複または矛盾するオプションがある場合、最後に指定したオプションが優先されます。 .RE .LP .SH "説明" .LP .LP \f3jstatd\fPツールは、計測されたHotSpot Java仮想マシン(JVM)の作成と終了を監視し、ローカル・システム上で実行されているJava仮想マシンに、リモート監視ツールが接続できるようにするためのインタフェースを提供するRMIサーバー・アプリケーションです。 .LP .LP \f3jstatd\fPサーバーでは、ローカル・ホストにRMIレジストリが存在することが必要になります。\f3jstatd\fPサーバーは、デフォルト・ポートまたは\f2\-p port\fPオプションで指定されたポート上のRMIレジストリに接続しようとします。RMIレジストリが見つからない場合、\f2\-p port\fPオプションで指定されたポート、または\f2\-p port\fPが省略されている場合は、デフォルトRMIレジストリにバインドされた\f3jstatd\fPアプリケーション内に、1つのRMIレジストリが作成されます。内部RMIレジストリの作成は、\f2\-nr\fPオプションを指定することによって禁止することができます。 .LP .LP \f3注意:\fPこのユーティリティはサポート対象外であり、将来のJDKのバージョンでは利用できなくなる可能性があります。現在、Windows 98およびWindows MEプラットフォームでは使用できません。 .LP .SH "オプション" .LP .LP \f3jstatd\fPコマンドは次のオプションをサポートしています。 .LP .RS 3 .TP 3 \-nr 既存のRMIレジストリが見つからない場合、\f2jstatd\fPプロセス内に内部RMIレジストリを作成しないようにします。 .TP 3 \-p\ port RMIレジストリがあると予想されるポート番号です。見つからない場合は、\f2\-nr\fPが指定されていなければ作成されます。 .TP 3 \-n\ rminame RMIレジストリにおいて、リモートRMIオブジェクトがバインドされる名前です。デフォルト名は\f2JStatRemoteHost\fPです。複数の\f3jstatd\fPサーバーが同じホスト上で起動している場合、各サーバーのエクスポートしたRMIオブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。ただし、このオプションを使用する場合、監視クライアントの\f2hostid\fPおよび\f2vmid\fP文字列に、その一意のサーバー名を含める必要があります。 .TP 3 \-Joption \f3javac\fPが呼び出す\f3java\fP起動ツールに、\f2option\fPを渡します。たとえば、\f3\-J\-Xms48m\fPと指定すると、スタートアップ・メモリーは48Mバイトに設定されます。\f3\-J\fPを使用して、Javaで記述されたアプリケーションを実行する背後のVMにオプションを渡すことは、よく行われています。 .RE .LP .SH "セキュリティ" .LP .LP \f3jstatd\fPサーバーは、適切なネイティブ・アクセス権を持つJVMのみを監視できます。したがって、\f3jstatd\fPプロセスは、ターゲットJVMと同じユーザー資格で実行されている必要があります。UNIX(tm)ベースのシステムにおける\f2root\fPユーザーなどの一部のユーザー資格は、システム上の任意のJVMによってエクスポートされたインストゥルメンテーションへのアクセス権を持っています。このような資格で実行されている\f3jstatd\fPプロセスは、システム上のすべてのJVMを監視できますが、セキュリティ上の別の問題が起こります。 .LP .LP \f3jstatd\fPサーバーには、リモート・クライアントの認証機能がありません。そのため、\f3jstatd\fPサーバー・プロセスを実行すると、\f3jstatd\fPプロセスがアクセス権を持つすべてのJVMによるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。この無防備な状態は、環境によっては望ましくない場合があるので、特に実稼働環境または安全でないネットワークでは、\f3jstatd\fPプロセスを起動する前に、ローカル・セキュリティ・ポリシーを検討する必要があります。 .LP .LP \f3jstatd\fPサーバーは、他のセキュリティ・マネージャがインストールされていない場合には、RMISecurityPolicyのインスタンスをインストールします。そのため、セキュリティ・ポリシー・ファイルを指定する必要があります。ポリシー・ファイルは、デフォルト・ポリシー実装の .na \f2ポリシー・ファイルの構文\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.htmlに準拠する必要があります。 .LP .LP 次のポリシー・ファイルでは、セキュリティ例外を発生せずに\f3jstatd\fPサーバーを実行できます。このポリシーは、すべてのコードベースへのあらゆるアクセス権を認めるポリシーよりも自由度が低いですが、\f3jstatd\fPサーバーを実行するために最低限必要なアクセス権のみを認めるポリシーよりも自由度が高くなっています。 .LP .nf \f3 .fl grant codebase "file:${java.home}/../lib/tools.jar" {\fP .br \f3 .fl permission java.security.AllPermission;\fP .br \f3 .fl };\fP .br \f3 .fl \fP .fi .LP .LP このポリシーを使用するには、このテキストを\f2jstatd.all.policy\fPというファイルにコピーし、次のように\f3jstatd\fPサーバーを実行します。 .LP .nf \f3 .fl jstatd \-J\-Djava.security.policy=jstatd.all.policy\fP .br \f3 .fl \fP .fi .LP .LP より厳しいセキュリティを実施するサイトの場合、カスタム・ポリシー・ファイルを使用して、特定の信頼できるホストまたはネットワークにアクセスを制限することができます。ただし、このような方法は、IPアドレスの盗聴攻撃を受けやすくなります。セキュリティの問題について、カスタマイズしたポリシー・ファイルでも対処できない場合は、\f3jstatd\fPサーバーを実行せずに、\f3jstat\fPと\f3jps\fPツールをローカルで使用することが最も安全な方法になります。 .LP .SH "リモート・インタフェース" .LP .LP \f3jstatd\fPプロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。ユーザーおよび開発者は、このインタフェースへの書込みを行わないでください。 .LP .SH "例" .LP .LP 次に\f3jstatd\fPを起動する例を紹介します。\f3jstatd\fPスクリプトによって、サーバーはバックグラウンドで自動的に起動します。 .LP .SS 内部RMIレジストリの使用 .LP .LP この例は、内部RMIレジストリを使用した\f3jstatd\fPの起動を表しています。この例では、デフォルトのRMIレジストリ・ポート(ポート1099)には、他のサーバーはバインドされていないと想定しています。 .LP .nf \f3 .fl jstatd \-J\-Djava.security.policy=all.policy .fl \fP .fi .LP .SS 外部RMIレジストリの使用 .LP .LP この例は、外部RMIレジストリを使用した\f3jstatd\fPの起動を表しています。 .LP .nf \f3 .fl rmiregistry& .fl jstatd \-J\-Djava.security.policy=all.policy .fl \fP .fi .LP .LP この例は、ポート2020の外部RMIレジストリを使用した\f3jstatd\fPの起動を表しています。 .LP .nf \f3 .fl rmiregistry 2020& .fl jstatd \-J\-Djava.security.policy=all.policy \-p 2020 .fl \fP .fi .LP .LP この例は、AlternateJstatdServerNameの名前にバインドされた、ポート2020の外部RMIレジストリを使用した\f3jstatd\fPの起動を表しています。 .LP .nf \f3 .fl rmiregistry 2020& .fl jstatd \-J\-Djava.security.policy=all.policy \-p 2020 \-n AlternateJstatdServerName .fl \fP .fi .LP .SS インプロセスRMIレジストリの作成の禁止 .LP .LP この例は、RMIレジストリが見つからない場合にRMIレジストリを作成しない\f3jstatd\fPの起動を表しています。この例では、RMIレジストリがすでに実行されていると想定しています。実行されていない場合は、適切なエラー・メッセージが表示されます。 .LP .nf \f3 .fl jstatd \-J\-Djava.security.policy=all.policy \-nr .fl \fP .fi .LP .SS RMIログ機能の有効化 .LP .LP この例は、RMIログ機能を有効にした\f3jstatd\fPの起動を表しています。この方法は、トラブルシューティングまたはサーバー活動の監視に役立ちます。 .LP .nf \f3 .fl jstatd \-J\-Djava.security.policy=all.policy \-J\-Djava.rmi.server.logCalls=true .fl \fP .fi .LP .SH "関連項目" .LP .RS 3 .TP 2 o java(1) \- Javaアプリケーション起動ツール .TP 2 o jps(1) \- Java仮想マシン・プロセス・ステータス・ツール .TP 2 o jstat(1) \- Java仮想マシン統計データ監視ツール .TP 2 o .na \f2rmiregistry\fP @ .fi http://docs.oracle.com/javase/7/docs/technotes/tools/index.html#rmi \- Javaリモート・オブジェクト・レジストリ .RE .LP