java.rmiプロパティ



注: 特に記述がないかぎり、これらのプロパティの出力はすべてSystem.errに送信されます。


リモート・オブジェクトをエクスポートする仮想マシン(VM)の設定に有用なプロパティ

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

java.rmi.dgc.leaseValue
このプロパティの値は、このVMによりエクスポートされたオブジェクトへのリモート参照を保持する他のVMに許可されるリース期間(ミリ秒)を表します。通常、リースの50%が期限切れになると、クライアントはリースを更新します。このため、非常に小さな値を指定すると、Unreferenced.unreferencedの呼出しによる待ち時間の短縮と引換えに、ネットワークのトラフィックは増大し、更新が遅れる危険があります。このプロパティのデフォルト値は600000ミリ秒(10分)です。
java.rmi.server.codebase
このプロパティは、このVMにより公開されるクラス(たとえば、スタブ・クラス、リモート・メソッド呼出しの宣言された戻り型を実装するカスタム・クラス、プロキシまたはスタブ・クラスが使用するインタフェース)のダウンロード元を指定します。このプロパティの値は、URL形式の文字列(または、スペースで区切られたURLリスト)で、このVMの(また結果としてこのVMにより整列化される) CLASSPATHからロードされるすべてのクラスのコード・ベース注釈になります。

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

java.rmi.server.hostname
このプロパティの値は、リモート・オブジェクト上のメソッドの呼出しをクライアントから可能にするために、ローカルに作成されたリモート・オブジェクトのリモート・スタブに関連付けられるホスト名文字列を表します。このプロパティのデフォルト値はローカル・ホストのIPアドレス(ドットで区切られた形式)です。
java.rmi.server.logCalls
この値がtrueの場合、着信する呼び出し、および着信する呼出しによりスローされる例外は、System.errに記録されます。このプロパティをtrueに設定すると、RMIプログラムのデバッグにたいへん役立ちます。sun.rmi.server.exceptionTraceも参照してください。
java.rmi.server.randomIDs
この値がtrueの場合、このVMによりエクスポートされたリモート・オブジェクトのオブジェクト識別子は、安全な暗号化の施された乱数ジェネレータを使って生成されます。デフォルト値はfalseです。
java.rmi.server.useCodebaseOnly
この値がtrueの場合、ローカルのCLASSPATHおよびこのVMに設定されたjava.rmi.server.codebaseプロパティからロードする場合を除き、クラスの自動ロードは禁止されます。このプロパティを使用することにより、クライアントVMが、ほかのコード・ベースからバイト・コードを動的にダウンロードすることがなくなります。
java.rmi.server.useLocalHostname
java.rmi.server.hostnameプロパティが指定されておらず、ローカル・ホストの完全指定されたドメイン名を取得できない場合、Java RMIはIPアドレスを使ってローカル・ホストを識別します。Java RMIが完全指定されたドメイン名をデフォルトで使用するようにするには、このプロパティをtrueに設定する必要があります。

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

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

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

java.rmi.server.disableHttp
この値がtrueの場合、http.proxyHostを設定しても、HTTPトンネリングは無効になります。デフォルト値はfalseです。プログラムがHTTPトンネリングを使用しないことがわかっている場合には、HTTPトンネリングを無効に設定して、接続失敗時のタイム・アウトの時間を短縮します。
java.rmi.server.useCodebaseOnly
この値がtrueの場合、ローカルのCLASSPATHおよびこのVMに設定されたjava.rmi.server.codebaseプロパティからロードする場合を除き、クラスの自動ロードは禁止されます。このプロパティを使用することにより、クライアントVMが、ほかのコード・ベースからバイト・コードを動的にダウンロードすることがなくなります。

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.