私のアプリケーションでは、リモートJVMのMBeanServerとの複数の接続を作成して維持しています。これらの接続をプールしたいと思います。ただし、リモートMBeanServerに負荷がかかっているかどうかはわかりません。
知りたいリモートJVMとのアイドル状態のrmiJMX接続を維持するMBeanサーバーはリモートJVMに負荷をかけますか?
私のアプリケーションでは、リモートJVMのMBeanServerとの複数の接続を作成して維持しています。これらの接続をプールしたいと思います。ただし、リモートMBeanServerに負荷がかかっているかどうかはわかりません。
知りたいリモートJVMとのアイドル状態のrmiJMX接続を維持するMBeanサーバーはリモートJVMに負荷をかけますか?
実際の JMX リモーティング プロトコルによって異なります。JMX/RMIは実際にはかなりおしゃべりで、接続チェック スレッドを起動します。JMXMPの方が効率的ですが、接続を追加するためのオーバーヘッドがいくらか蓄積されるため、リソースの使用率と新しい (または共有する) 接続を確立するコストとのトレードオフになります。
なぜプールしたいのか詳しく説明していただけますか?
====更新====
Apache Commons Poolを使用できます。GenericKeyedObjectPoolのインスタンスを作成します。PoolableObjectFactory実装はJMXConnectorFactoryをラップする必要があり、接続を借用するときに使用するJMXServiceURLと資格情報を含む複合キー クラスを作成できます。次に、オブジェクト ファクトリは、借用呼び出しでキーを分解し、アクティブ化呼び出しで、認証された接続を取得できます。
実際のプールされたオブジェクトは、makeObject 呼び出しで「切断された」インスタンスを作成する必要があるため (標準の JMX リモーティングではそのようなことはありません)、接続されていない場合はアクティブ化時に「接続」する必要があるため、ある種のラッパーである必要があります。すでに。