1 '\" t
   2 .\" 
   3 .\" Copyright 2004-2006 Sun Microsystems, Inc.  All Rights Reserved.
   4 .\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   5 .\"
   6 .\" This code is free software; you can redistribute it and/or modify it
   7 .\" under the terms of the GNU General Public License version 2 only, as
   8 .\" published by the Free Software Foundation.
   9 .\"
  10 .\" This code is distributed in the hope that it will be useful, but WITHOUT
  11 .\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  12 .\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  13 .\" version 2 for more details (a copy is included in the LICENSE file that
  14 .\" accompanied this code).
  15 .\"
  16 .\" You should have received a copy of the GNU General Public License version
  17 .\" 2 along with this work; if not, write to the Free Software Foundation,
  18 .\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  19 .\"
  20 .\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  21 .\" or visit www.oracle.com if you need additional information or have any
  22 .\" questions.
  23 .\" 
  24 .TH jstatd 1 "05 Jul 2012"
  25 .SH 名前
  26 jstatd \- 仮想マシン jstat デーモン
  27 .\"
  28 .SH 形式
  29 .B jstatd 
  30 .BI [ options ]  
  31 .SH パラメータ
  32 .if t .TP 20
  33 .if n .TP 15
  34 .BI options
  35 コマンド行オプション。オプションは任意の順序で指定できます。冗長または矛盾するオプションがあった場合は、最後に指定されたオプションが優先されます。
  36 .SH 機能説明
  37 .B jstatd 
  38 ツールは、計測機構付き HotSpot Java 仮想マシン (JVM) の作成と終了を監視する RMI サーバーアプリケーションであり、リモート監視ツールがローカルホスト上で実行している JVM にアタッチするためのインタフェースを備えています。
  39 .LP
  40 jstatd サーバーが機能するためには、ローカルホスト上に RMI レジストリが存在する必要があります。jstatd サーバーは、デフォルトポートまたは 
  41 .BI \-p " port" 
  42 オプションによって示されたポート上の RMI レジストリへのアタッチを試みます。RMI レジストリが見つからなかった場合は、
  43 .BI \-p " port" 
  44 オプションによって示されたポートにバインドされた jstatd アプリケーション内で作成され、 
  45 .BI \-p " port" 
  46 が省かれた場合はデフォルトの RMI レジストリにバインドされた jstatd アプリケーション内で作成されます。内部 RMI レジストリの作成は、
  47 .B \-nr 
  48 オプションを指定することによって禁止できます。
  49 .LP
  50 注 - このユーティリティはサポートされていないため、JDK の将来のバージョンでは使用できない可能性があります。現時点では、Windows 98 および Windows ME プラットフォームでは使用できません。
  51 .SH オプション
  52 .B jstatd 
  53 コマンドは、以下のオプションをサポートします。
  54 .if t .TP 20
  55 .if n .TP 15
  56 .BI \-nr
  57 既存の RMI レジストリが見つからないときに、
  58 .B jstatd 
  59 プロセス内での内部 RMI レジストリの作成を試みません。
  60 .if t .TP 20
  61 .if n .TP 15
  62 .BI \-p " port" 
  63 RMI レジストリを探すポート番号。または、RMI レジストリが見つからず、
  64 .B \-nr 
  65 が指定されなかった場合に、RMI レジストリが作成されるポート番号。
  66 .if t .TP 20
  67 .if n .TP 15
  68 .BI \-n " rminame"
  69 RMI レジストリでリモート RMI オブジェクトがバインドされる名前。デフォルトの名前は、JStatRemoteHost です。同じホスト上で複数の 
  70 .B jstatd 
  71 サーバーが起動している場合、各サーバーのエクスポート RMI オブジェクトの名前を一意にするには、このオプションを指定します。ただし、そのためには、監視クライアントの hostid および vmid 文字列に一意のサーバー名が含まれている必要があります。
  72 .if t .TP 20
  73 .if n .TP 15
  74 .BI \-J option
  75 .I option 
  76 を 
  77 .B javac 
  78 によって呼び出された java 起動ツールに渡します。たとえば、
  79 .B \-J-Xms48m 
  80 は、起動メモリを 48M バイトに設定します。Java で作成された下層の VM 実行アプリケーションにオプションを渡すのが、
  81 .B \-J 
  82 の一般的規則です。
  83 .SH セキュリティ
  84 
  85 .B jstatd
  86 サーバーは、適切なネイティブアクセス権を持っている JVM だけを監視できます。
  87 このため、jstatd プロセスは、ターゲット JVM と同じユーザー資格で実行している必要があります。
  88 UNIX(TM) ベースのシステムの root ユーザーなど、一部のユーザー資格には、
  89 そのシステム上の任意の JVM によってエクスポートされた計測機構への
  90 アクセス権が割り当てられています。
  91 このような資格で実行中の jstatd プロセスは、そのシステム上の任意の JVM を監視できますが、
  92 これに伴うセキュリティ上の問題も考慮する必要があります。
  93 .LP
  94 jstatd サーバーは、リモートクライアントの認証は行いません。
  95 つまり、jstatd サーバープロセスを実行すると、
  96 jstatd プロセスがアクセス権を持つすべての JVM から
  97 エクスポートされる計測機構が、ネットワーク上の任意のユーザーに公開されます。
  98 計測機構が公開されると、環境によっては望ましくない場合があります。
  99 特に運用環境や安全性の低いネットワークでは、
 100 jstatd プロセスを開始する前に
 101 ローカルセキュリティポリシーを検討する必要があります。
 102 .LP
 103 .B jstatd 
 104 サーバーは、他にセキュリティマネージャがインストールされていない場合は、RMISecurityPolicy のインスタンスをインストールするので、セキュリティポリシーファイルを指定する必要があります。
 105 ポリシーファイルは、デフォルトのポリシー実装のポリシーファイル構文
 106 .fi
 107  (http://docs.oracle.com/javase/6/docs/technotes/guides/security/PolicyFiles.html) 
 108 に従う必要があります。
 109 .LP
 110 次のポリシーファイルでは、
 111 .B jstatd 
 112 サーバーはセキュリティ例外を起こさずに実行できます。このポリシーは、
 113 すべてのコードベースへのすべてのアクセス権を許可するよりは自由度が低いですが、
 114 .B jstatd 
 115 サーバーの実行に必要な最小限度のアクセス権を許可するポリシーよりは自由度が高いです。
 116 .LP
 117 .RS
 118 .ft 3
 119 .nf
 120 grant codebase "file:${java.home}/../lib/tools.jar" {
 121          permission java.security.AllPermission;
 122 };
 123 .fi
 124 .ft 1
 125 .RE
 126 .LP
 127 このポリシーを使用するには、テキストを jstatd.all.policy という名前のファイルにコピーしたあと、次のようにして 
 128 .B jstatd 
 129 サーバーを実行します。
 130 .LP
 131 .RS
 132 .ft 3
 133 .nf
 134 jstatd -J-Djava.security.policy=jstatd.all.policy
 135 .fi
 136 .ft 1
 137 .RE
 138 .LP
 139 より厳格なセキュリティを採用しているサイトでは、
 140 カスタムポリシーファイルを使用して、特定の信頼できるホストまたはネットワークに
 141 アクセスを制限できます。ただし、この方法を使用しても、
 142 IP アドレスのスプーフィング攻撃にさらされます。
 143 カスタムポリシーファイルを使用することでセキュリティの問題に対応できない場合には、
 144 jstatd サーバーを実行せずに、
 145 jstat および jps ツールをローカルで使用するのが最も安全です。
 146 .SH リモートインタフェース
 147 .B jstatd 
 148 プロセスによってエクスポートされるインタフェースはプロプライエタリであり、変更が保証されています。ユーザーおよび開発者は、このインタフェースに書き込まないようにしてください。
 149 .SH 使用例
 150 .B jstatd 
 151 の起動例をいくつか示します。これらの 
 152 .B jstatd 
 153 スクリプトは、バックグラウンドで自動的にサーバーを起動します。
 154 .SS 内部 RMI レジストリの使用
 155 この例は、内部 RMI レジストリを使用した 
 156 .B jstatd 
 157 の起動を示しています。この例では、他のサーバーがデフォルトの RMI レジストリポート (ポート 1099) にバインドされていないことを前提としています。
 158 .LP
 159 .RS
 160 .ft 3
 161 .nf
 162 jstatd -J-Djava.security.policy=all.policy
 163 .fi
 164 .ft 1
 165 .RE
 166 .SS 外部 RMI レジストリの使用
 167 この例は、外部 RMI レジストリを使用した 
 168 .B jstatd 
 169 の起動を示しています。
 170 .LP
 171 .RS
 172 .ft 3
 173 .nf
 174 rmiregistry&
 175 jstatd -J-Djava.security.policy=all.policy
 176 .fi
 177 .ft 1
 178 .RE
 179 .LP
 180 この例は、ポート 2020 上の外部 RMI レジストリサーバーを使用した 
 181 .B jstatd 
 182 の起動を示しています。
 183 .LP
 184 .RS
 185 .ft 3
 186 .nf
 187 rmiregistry 2020&
 188 jstatd -J-Djava.security.policy=all.policy -p 2020
 189 .fi
 190 .ft 1
 191 .RE
 192 .LP
 193 この例は、ポート 2020 上の、AlternateJstatdServerName という名前にバインドされた外部 RMI レジストリを使用した 
 194 .B jstatd 
 195 の起動を示しています。
 196 .LP
 197 .RS
 198 .ft 3
 199 .nf
 200 rmiregistry 2020&
 201 jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName
 202 .fi
 203 .ft 1
 204 .RE
 205 .SS プロセス内 RMI レジストリの作成の禁止
 206 この例は、RMI レジストリが見つからない場合も RMI レジストリを作成しないように 
 207 .B jstatd 
 208 を起動する例を示しています。この例では、RMI がすでに実行していることを前提としています。実行していなかった場合は、適切なエラーメッセージが表示されます。
 209 .LP
 210 .RS
 211 .ft 3
 212 .nf
 213 jstatd -J-Djava.security.policy=all.policy -nr
 214 .fi
 215 .ft 1
 216 .RE
 217 .SS RMI ロギング機能の有効化
 218 この例は、RMI ロギング機能を有効にして 
 219 .B jstatd 
 220 を起動する例を示しています。この方法は、障害追跡やサーバー活動の監視に役立ちます。
 221 .LP
 222 .RS
 223 .ft 3
 224 .nf
 225 jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true
 226 .fi
 227 .ft 1
 228 .RE
 229 .LP
 230 .SH 関連項目
 231 .LP
 232 .RS 3
 233 .TP 2
 234 *
 235 java \- Java アプリケーション起動プログラム
 236 .TP 2
 237 *
 238 jps \- Java 仮想マシンプロセスステータスツール
 239 .TP 2
 240 *
 241 jstat \- Java 仮想マシン統計監視ツール
 242 .TP 2
 243 *
 244 rmiregistry \- Java リモートオブジェクトレジストリ
 245 .RE
 246 
 247 .LP
 248 
 249 .LP
 250