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.execPolicy
ActivationGroupDesc
内の情報を使用できるかどうかを判断するときに、rmid
が使用するポリシーを決定します。このプロパティに指定できる値は、default
、none
、またはActivationGroupDesc
情報を検証するために呼び出されるcheckExecCommand
メソッドを実装するクラスの、完全指定名です。詳細は、rmid
のツール・ドキュメント(Solaris、LinuxまたはMac OS X用、Windows用)を参照してください。sun.rmi.activation.execTimeout
rmid
が待機する最大時間を短くしたり、長くしたりできます。デフォルト値は30000ミリ秒(30秒)です。sun.rmi.activation.groupThrottle
rmid
により「生成されたがアクティブではない」状態を許可される起動グループVMの最大数を表します。より多くのVMを起動する必要がある場合、VMは、生成中の1つが成功するか、タイムアウトになるまで待機します。このプロパティは、アクティブなVMの最大数を制限しません。これは、オペレーティング・システムの制限に達しないように、活動の急激な増加を避けることを目的としています。このプロパティの値を低く設定するとrmid
の起動時間が長くなり、高く設定すると起動時間が短くなります。ただし、設定値が高すぎると、システム・リソースが不足するために、rmid
がクラッシュする可能性があります。デフォルト値は3です。以前のリリースでこのプロパティに付けられた名前のsun.rmi.rmid.maxstartgroup
は、現在サポートされません。sun.rmi.activation.groupTimeout
rmid
が起動グループのプロセスを破壊したのち、新しい起動グループを生成する前に待機する時間(ミリ秒)を表します。デフォルト値は60000ミリ秒(60秒)です。sun.rmi.activation.snapshotInterval
rmid
ログ・ファイルに直列化するまでの待機時間中の更新回数を制御します。「更新」とは、最後のスナップショット作成時以降の、起動システムの状態(Activatable
オブジェクトの登録など)の持続的な変化を指します。rmid
の再起動をより迅速に行う場合(ログのスナップショット作成頻度を上げることにより)、またはrmid
の動作効率を向上させる(ログのスナップショット作成頻度を下げることにより)場合に、このプロパティ値を変更します。このプロパティの値は、正の整数です。デフォルト値は200です。sun.rmi.log.debug
true
の場合、rmid
のロギング動作はSystem.err
に送信されます。sun.rmi.server.activation.debugExec
true
の場合、起動システムは、起動グループの生成に使用されるコマンド行にデバッグ情報を出力します。デフォルト値はfalse
です。このため、デバッグ情報は出力されません。sun.rmi.dgc.ackTimeout
Long.MAX_VALUE
です。デフォルト値は300000ミリ秒(5分)です。sun.rmi.dgc.checkInterval
java.rmi.dgc.leaseValue
プロパティの値の半分です。sun.rmi.dgc.logLevel
sun.rmi.dgc.server.gcInterval
sun.rmi.loader.logLevel
sun.rmi.server.exceptionTrace
true
の場合、例外スタック・トレースが出力されます。デフォルト(false
)では、例外およびエラー・スタック・トレースは出力されません。sun.rmi.server.suppressStackTraces
true
に設定すると、サーバー側Java RMIランタイム実装は、リモート呼出しの結果として現在の仮想マシンからスローされるすべての例外のスタック・トレースをクリアします。このプロパティは、特定のサーバー・アプリケーションで、パフォーマンスや機密性の理由により、着信リモート呼出しの結果として整列化される例外がサーバー側スタック・トレースに含まれないようにする必要がある場合に役に立ちます。sun.rmi.transport.logLevel
sun.rmi.transport.tcp.localHostNameTimeOut
sun.rmi.transport.tcp.logLevel
sun.rmi.transport.tcp.readTimeout
java.net.Socket.setSoTimeout
に渡されます。クライアントが、本来の動作と異なり、不使用の接続を削除しない場合にのみ使用されます(sun.rmi.transport.connectionTimeout
を参照)。デフォルト値は2*3600*1000ミリ秒(2時間)です。sun.rmi.transport.tcp.maxConnectionThreads
Integer.MAX_VALUE
)で、実質的に制限はありません。sun.rmi.transport.tcp.threadKeepAliveTime
sun.rmi.client.logCalls
true
の場合、sun.rmi.client.call
ロガーはレベルLevel.FINER
に設定されます。リモート呼出しは、レベルLevel.FINER
でログ記録され、リモート呼び出しからスローされた例外はレベルLevel.FINE
でログ記録されます。sun.rmi.dgc.cleanInterval
sun.rmi.dgc.client.gcInterval
sun.rmi.loader.logLevel
sun.rmi.server.logLevel
sun.rmi.transport.connectionTimeout
sun.rmi.transport.tcp.readTimeout
も参照してください。sun.rmi.transport.logLevel
sun.rmi.transport.proxy.connectTimeout
createSocket
)が完了するまで、HTTPを使ってサーバーへの接続を試みる前の、Java RMIランタイムの待機時間の最大値を(ミリ秒で)表します。このプロパティが使用されるのは、http.proxyHost
プロパティが設定され、かつjava.rmi.server.disableHttp
の値がfalse
の場合だけです。デフォルト値は15000ミリ秒(15秒)です。sun.rmi.transport.proxy.eagerHttpFallback
java.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.logLevel
RMISocketFactory
クラスが使用される場合に、イベント(createSocket
およびcreateServerSocket
)のロギングを制御します。これは、HTTPを介してJava RMIを使用するアプリケーションで有用なロギング・タイプです。このプロパティでは、カスタム・ソケット・ファクトリ内のイベントはログに記録されません。"proxy"ログに送信されるメッセージもあれば、"transport"ログに送信されるメッセージもあります。sun.rmi.transport.tcp.handshakeTimeout
Integer.MAX_VALUE
で、ゼロの値はタイム・アウトの制限がないことを示します。デフォルト値は60000 (1分)です。sun.rmi.transport.tcp.responseTimeout
java.rmi.RemoteException
がスローされます。ただしこのプロパティにより、成功した発信リモート呼出しで許可される時間の上限が実質的に設定されるため、このプロパティを設定するときは期限を考慮する必要があります。最大値はInteger.MAX_VALUE
で、ゼロの値はタイム・アウトの制限がないことを示します。デフォルト値は0 (タイムアウトなし)です。sun.rmi.transport.tcp.logLevel