java.rmi プロパティ



: 明言されない限り、これらのプロパティの出力はすべて System.err に送信されます。


リモートオブジェクトをエクスポートする JVM * の設定に有用なプロパティ

java.rmi.activation.port (1.2 以降)
このプロパティは、この VM が rmid と通信する際の TCP ポート番号の設定に使用されます。デフォルトでは、rmid はポート 1098 で待機しますが、rmid コマンド行で -port オプションを使うと、別のポートで待機するように設定できます。このプロパティのデフォルト値は 1098 のため、このプロパティは、1098 以外のポートで動作する rmid のインスタンスと通信する必要がある VM でのみ設定する必要があります。

java.rmi.dgc.leaseValue (1.1 以降)
このプロパティの値は、この JVM によりエクスポートされたリモート参照オブジェクトを保持する他の JVM に許可されるリース期間 (ミリ秒) を表します。通常、リースの 50% が期限切れになると、クライアントはリースを更新します。このため、非常に小さな値を指定すると、Unreferenced.unreferenced の呼び出しによる待ち時間の短縮と引き換えに、ネットワークのトラフィックは増大し、更新が遅れる危険があります。デフォルト値は 600000 ミリ秒 (10 分) です。

java.rmi.server.codebase (1.1 以降)
このプロパティは、この JVM により公開されるクラス (たとえば、スタブクラス、リモートメソッド呼び出しの宣言された戻り型を実装するカスタムクラス、プロキシまたはスタブクラスが使用するインタフェース) のダウンロード元を指定します。このプロパティの値は、URL 形式の文字列 (または、1.2 以降ではスペースで区切られた URL リスト) で、この JVM の (また結果としてこの JVM により整列化される) CLASSPATH からロードされるすべてのクラスのコードベース注釈になります。

注: RMI を使ってクラスおよびインタフェースを動的にダウンロードするには、このプロパティを適切に設定する必要があります。このプロパティを適切に設定しないと、サーバまたはクライアントの実行時に例外が発生する可能性があります。このプロパティの詳細は、「RMI の使用による動的なコードのダウンロード (java.rmi.server.codebase プロパティを使用)」を参照してください。

java.rmi.server.hostname (1.1 以降)
このプロパティの値は、リモートオブジェクト上のメソッドの呼び出しをクライアントから可能にするために、ローカルに作成されたリモートオブジェクトのリモートスタブに関連付けられるホスト名文字列を表します。1.1.7 以降では、このプロパティのデフォルト値はローカルホストの IP アドレス (ドットで区切られた形式) です。

java.rmi.server.logCalls (1.1 以降)
この値が true の場合、着信する呼び出し、および着信する呼び出しによりスローされる例外は、System.err に記録されます。このプロパティを true に設定すると、RMI プログラムのデバッグに大変役立ちます。 sun.rmi.server.exceptionTrace も参照してください。

java.rmi.server.randomIDs (1.1.8 以降)
この値が true の場合、この JVM によりエクスポートされたリモートオブジェクトのオブジェクト識別子は、安全な暗号化の施された乱数ジェネレータを使って生成されます。デフォルト値は false です。

java.rmi.server.useCodebaseOnly (1.1 以降)
この値が true の場合、ローカルの CLASSPATH およびこの JVM に設定された java.rmi.server.codebase プロパティを除き、クラスの自動ロードは禁止されます。このプロパティを使用することにより、クライアント JVM が、他のコードベースからバイトコードを動的にダウンロードすることがなくなります。バグのため、1.2 および 1.2.1 の実装では、このプロパティは無視されます。

java.rmi.server.useLocalHostname (1.1.7 以降)
java.rmi.server.hostname プロパティが指定されていない場合、およびローカルホストの完全修飾されたドメイン名を取得できない場合、RMI は IP アドレスを使ってローカルホストを識別します。RMI が完全修飾されたドメイン名をデフォルトで使用するようにするには、このプロパティを true に設定する必要があります。

リモートメソッド呼び出しを実行する JVM の設定に有用なプロパティ

java.rmi.server.codebase (1.1 以降)
このプロパティは、この JVM により公開されるクラス (たとえば、リモートメソッド呼び出しの宣言されたパラメータ型であるインタフェースを実装するカスタムクラス) のダウンロード元を指定します。このプロパティの値は、URL 形式の文字列 (または、1.2 以降ではスペースで区切られた URL リスト) で、この JVM の (また結果としてこの JVM により整列化される) CLASSPATH からロードされるすべてのクラスのコードベース注釈になります。

注: サーバのコードベースおよびクライアントの CLASSPATH の両方に存在するクラスは、サーバのコードベースからではなく、クライアントの CLASSPATH からロードされます。このプロパティの詳細は、「RMI の使用による動的なコードのダウンロード (java.rmi.server.codebase プロパティを使用)」を参照してください。

java.rmi.server.disableHttp (1.1 以降)
この値が true の場合、http.proxyHost を設定しても、HTTP トンネリングは無効になります。デフォルト値は false です。プログラムが HTTP トンネリングを使用しないことがわかっている場合には、HTTP トンネリングを無効に設定して、接続失敗時のタイムアウトの時間を短縮します。

java.rmi.server.useCodebaseOnly (1.1 以降)
この値が true の場合、ローカルの CLASSPATH およびこの JVM に設定された java.rmi.server.codebase プロパティを除き、クラスの自動ロードは禁止されます。このプロパティを使用することにより、クライアント JVM が、他のコードベースからバイトコードを動的にダウンロードすることがなくなります。バグのため、1.2 および 1.2.1 の実装では、このプロパティは無視されます。
これらのチュートリアルに関して、コメントや提案をお寄せください。その際は、タイトルを「java.rmi properties FAQ」として、rmi-comments@java.sun.com までお送りください。

* この Web サイトで使用されている用語「Java 仮想マシン」または「JVM」は、Java プラットフォーム用の仮想マシンを表します。


Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved. 
コメントの送付先: rmi-comments@java.sun.com 
Sun