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