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