jstatd
をRMIレジストリの特定のポートで開始する場合は、このために-p
パラメータを渡すことができます。jstatdの2番目のオープンポートを強制する方法または予測する方法は?
しかし、問題は、ファイアウォールルールの作成やJVisualVMを使用してDockerコンテナ内で実行中のリモートjstatd
に接続するための2番目のランダムなポート(Javaでは「anonymous port」と呼ばれます)を開くことです。
jstatd
sourceを見ると、UnicastRemoteObject.exportObject(remoteHost, 0)
が呼び出され、ランダムなような新しい「匿名ポート」が開かれることがわかります。
この最後のポートを固定ポートにする方法、またはどちらを選択するかを予測する方法はありますか?
[RMIが特定のポートセットのみを使用するようにするにはどうすればいいですか?](http://stackoverflow.com/questions/56687/how-do-i-ensure-that-rmi-uses-only -a-specific-set-of-ports) – jchampemont
実際には、ソケットファクトリの競合がない限り、新しくエクスポートされたオブジェクトは以前に使用されたポート(レジストリポートなど)を再利用します。証拠はありますか?またはこの誤解だけに基づいてこの質問ですか? – EJP
@EJP:私はあなたのコメントを本当に理解していません...私の質問は、 'jstatd'を起動すると別のポート(RMIレジストリポート)が開かれ、 (例えば)JVisualVMはこのリモートサーバにアクセスすることができません... –