sun.rmi Properties警告: ここで説明するプロパティは、サポート対象外であり、随時変更される可能性があります。また、Java Remote Method Invocation (Java RMI)の特定の実装にしか存在しません。 これらのプロパティはJava RMI public APIの一部ではありません。 Java RMI public APIに含まれるプロパティの一覧は、「java.rmiプロパティ」のページを参照してください。
ノート: 特に記述がないかぎり、これらのプロパティの出力はすべてSystem.errに送信されます。
名前の末尾に「.logLevel」の付く各プロパティが保持できる値には、「SILENT」、「BRIEF」および「VERBOSE」があります。 これらの値は、大文字と小文字が区別されず、また最初のn文字に省略できます。nは1以上の値です。 値が指定されない場合、これらのプロパティはデフォルト値である「SILENT」を保持します。 「BRIEF」値に設定すると、対応するLoggerがレベルLevel.FINEに設定され、「VERBOSE」値に設定すると、対応するLoggerがレベルLevel.FINERに設定されます。 ロギング用のこれらのsun.rmi.*システム・プロパティを使用するよりも、ロギング構成ファイルを使用することをお勧めします。
ログ・メッセージは、System.errに送信されます。 たとえば、出力を"transport"ログに送信するとプロパティで指定された場合、java.rmi.server.LogStream.log("transport")により返されるLogStreamにログ・メッセージが送信されることを意味します。送信先が他に設定されていないかぎり、LogStreamはメッセージをSystem.errに送信します。
rmidに設定可能なプロパティsun.rmi.activation.execPolicyActivationGroupDesc内の情報を使用できるかどうかを判断するときに、rmidが使用するポリシーを決定します。 このプロパティに指定できる値は、default、none、またはActivationGroupDesc情報を検証するために呼び出されるcheckExecCommandメソッドを実装するクラスの、完全指定名です。 詳細は、rmidのツール・ドキュメント(Solaris、LinuxまたはMac OS X用、Windows用)を参照してください。 sun.rmi.activation.execTimeoutrmidが待機する最大時間を短くしたり、長くしたりできます。 デフォルト値は30000ミリ秒(30秒)です。 sun.rmi.activation.groupThrottlermidにより「生成されたがアクティブではない」状態を許可される起動グループVMの最大数を表します。 より多くのVMを起動する必要がある場合、VMは、生成中の1つが成功するか、タイムアウトになるまで待機します。 このプロパティは、アクティブなVMの最大数を制限しません。これは、オペレーティング・システムの制限に達しないように、活動の急激な増加を避けることを目的としています。 このプロパティの値を低く設定するとrmidの起動時間が長くなり、高く設定すると起動時間が短くなります。ただし、設定値が高すぎると、システム・リソースが不足するために、rmidがクラッシュする可能性があります。 デフォルト値は3です。 以前のリリースでこのプロパティに付けられた名前のsun.rmi.rmid.maxstartgroupは、現在サポートされません。 sun.rmi.activation.groupTimeoutrmidが起動グループのプロセスを破壊したのち、新しい起動グループを生成する前に待機する時間(ミリ秒)を表します。 デフォルト値は60000ミリ秒(60秒)です。 sun.rmi.activation.snapshotIntervalrmidログ・ファイルに直列化するまでの待機時間中の更新回数を制御します。 「更新」とは、最後のスナップショット作成時以降の、起動システムの状態(Activatableオブジェクトの登録など)の持続的な変化を指します。 rmidの再起動をより迅速に行う場合(ログのスナップショット作成頻度を上げることにより)、またはrmidの動作効率を向上させる(ログのスナップショット作成頻度を下げることにより)場合に、このプロパティ値を変更します。 このプロパティの値は、正の整数です。 デフォルト値は200です。 sun.rmi.log.debugtrueの場合、rmidのロギング動作はSystem.errに送信されます。sun.rmi.server.activation.debugExectrueの場合、起動システムは、起動グループの生成に使用されるコマンド行にデバッグ情報を出力します。 デフォルト値はfalseです。このため、デバッグ情報は出力されません。 sun.rmi.dgc.ackTimeoutLong.MAX_VALUEです。 デフォルト値は300000ミリ秒(5分)です。 sun.rmi.dgc.checkIntervaljava.rmi.dgc.leaseValueプロパティの値の半分です。 sun.rmi.dgc.logLevelsun.rmi.dgc.server.gcIntervalsun.rmi.loader.logLevelsun.rmi.server.exceptionTracetrueの場合、例外スタック・トレースが出力されます。 デフォルト(false)では、例外およびエラー・スタック・トレースは出力されません。 sun.rmi.server.suppressStackTracestrueに設定すると、サーバー側Java RMIランタイム実装は、リモート呼出しの結果として現在の仮想マシンからスローされるすべての例外のスタック・トレースをクリアします。 このプロパティは、特定のサーバー・アプリケーションで、パフォーマンスや機密性の理由により、着信リモート呼出しの結果として整列化される例外がサーバー側スタック・トレースに含まれないようにする必要がある場合に役に立ちます。 sun.rmi.transport.logLevelsun.rmi.transport.tcp.localHostNameTimeOutsun.rmi.transport.tcp.logLevelsun.rmi.transport.tcp.readTimeoutjava.net.Socket.setSoTimeoutに渡されます。 クライアントが、本来の動作と異なり、不使用の接続を削除しない場合にのみ使用されます(sun.rmi.transport.connectionTimeoutを参照)。 デフォルト値は2*3600*1000ミリ秒(2時間)です。 sun.rmi.transport.tcp.maxConnectionThreadsInteger.MAX_VALUE)で、実質的に制限はありません。 sun.rmi.transport.tcp.threadKeepAliveTimesun.rmi.client.logCallstrueの場合、sun.rmi.client.callロガーはレベルLevel.FINERに設定されます。 リモート呼出しは、レベルLevel.FINERでログ記録され、リモート呼び出しからスローされた例外はレベルLevel.FINEでログ記録されます。 sun.rmi.dgc.cleanIntervalsun.rmi.dgc.client.gcIntervalsun.rmi.loader.logLevelsun.rmi.server.logLevelsun.rmi.transport.connectionTimeoutsun.rmi.transport.tcp.readTimeoutも参照してください。 sun.rmi.transport.logLevelsun.rmi.transport.proxy.connectTimeoutcreateSocket)が完了するまで、HTTPを使ってサーバーへの接続を試みる前の、Java RMIランタイムの待機時間の最大値を(ミリ秒で)表します。 このプロパティが使用されるのは、http.proxyHostプロパティが設定され、かつjava.rmi.server.disableHttpの値がfalseの場合だけです。 デフォルト値は15000ミリ秒(15秒)です。 sun.rmi.transport.proxy.eagerHttpFallbackjava.rmi.server.disableHttpシステム・プロパティが設定されていないと、デフォルトのglobal RMISocketFactoryは、最初の(直接)接続試行からjava.net.SocketExceptionがスローされたときに、HTTPトンネリングへフォール・バックします。これは、最初の接続試行がjava.net.UnknownHostExceptionまたはjava.net.NoRouteToHostExceptionをスローしたときのみHTTPトンネリングへフォール・バックするデフォルトの動作とは対照的です。
この設定は、承認されないポートへの接続試行を無視するかわりに拒否するファイアウォールを取り扱うときに、有用である場合があります。そのときは、クライアントのデフォルトのglobal RMISocketFactory内がjava.net.ConnectionExceptionになります。 このシステム・プロパティが有効にされていないと、UnknownHostExceptionでもNoRouteToHostExceptionでもないため、このようなConnectionExceptionがHTTPフォール・バックのトリガーになることはありません。 ただし、このシステム・プロパティが有効にされている場合は、ConnectionExceptionがSocketExceptionのサブクラスであるため、ConnectionExceptionがHTTPフォール・バックを引き起こします。
sun.rmi.transport.proxy.logLevelRMISocketFactoryクラスが使用される場合に、イベント(createSocketおよびcreateServerSocket)のロギングを制御します。 これは、HTTPを介してJava RMIを使用するアプリケーションで有用なロギング・タイプです。 このプロパティでは、カスタム・ソケット・ファクトリ内のイベントはログに記録されません。" proxy"ログに送信されるメッセージもあれば、"transport"ログに送信されるメッセージもあります。 sun.rmi.transport.tcp.handshakeTimeoutInteger.MAX_VALUEで、ゼロの値はタイム・アウトの制限がないことを示します。 デフォルト値は60000 (1分)です。 sun.rmi.transport.tcp.responseTimeoutjava.rmi.RemoteExceptionがスローされます。 ただしこのプロパティにより、成功した発信リモート呼出しで許可される時間の上限が実質的に設定されるため、このプロパティを設定するときは期限を考慮する必要があります。 最大値はInteger.MAX_VALUEで、ゼロの値はタイム・アウトの制限がないことを示します。 デフォルト値は0 (タイムアウトなし)です。 sun.rmi.transport.tcp.logLevel