その JVM インスタンス内から JVM の JMX サーバーにアクセスすることは可能ですか? または、標準のソケット/ポート リモート インターフェイスを介して接続する必要がありますか?
+----------------------------------------+ Option 2: Connect
| +---------------------------+ | through sockets like
| | My Notification Listener |+----->----------+ a remote
| | | | | monitor.
| +---------------------------+ | |
| + | |
| Option 1: connect| | |
| to the internal | | |
| JMX server. I'm | | |
| trying to find | | |
| if this is possible. | |
| | | |
| | | |
| A single JVM instance. | | |
| | | |
| +------------+-----v------+--+ | |
| | | GuageMXBean|<-+<--------------+
| | +------------+ | |
| | JMX MXBean Server | |
| +----------------------------+ |
+----------------------------------------+
コンテキスト: JVM の状態、特にメモリ使用量に応答し、作業データをディスクにキャッシュして RAM に保持する「インテリジェント」システムを実装しようとしています。JMX リスナーの設定は、次のようなバックグラウンド スレッドを実行するよりも洗練されているように見えました。
Runtime RTime = Runtime.getRuntime();
while(!shutdown)
{
if((RTime.totalMemory / RTime.maxMemory) > upperThreshold) cachmode = CACHETODISK;
if((RTime.totalMemory / RTime.maxMemory) < lowerThreshold) cachmode = CACHETORAM;
Sleep(1000);
}
それが違いを生むなら、デスクトップアプリケーション。
これは私の最初のSO投稿なので、質問の改善などのヒントは大歓迎です。