Windows Server 2008 に JBoss サーバーをサービスとしてインストールし、ローカル システムをログオン ユーザーとして使用しています。
JBoss サーバーで visualgc を実行できるようにしたいのですが、Server 2008 より前では、PID (つまり、visualgc [PID]) に直接接続できました。私が読んだことによると、Server 2008 での私の唯一の解決策は、同じ資格情報を使用して jstatd をサービスとしてインストールし、visualgc をリモートで実行することです (つまり、visualgc [PID]@localhost:1099)。
そこで、ローカル システム アカウントで jstatd をサービスとして実行し (ポリシー ファイルで AllPermissions を付与し、それにも問題があったため java.io.tmpdir を設定しました)、両方の Java プロセスが同じユーザーで実行されていることを確認しました。タスク マネージャーのセッション ID ですが、jps rmi://localhost:1099 は何も返さず、visualgc pid@localhost:1099 は「[PID] が見つかりません」と表示します。
興味深いことに、JBoss サービスと jstatd サービスの両方のログオン ユーザーを管理者に切り替えると、visualgc は正常に動作します。また興味深いことに、Windows 7 Ultimate ボックスでは、両方のサービスをローカル システムとしてインストールでき、そこで正常に動作します。
Windows 7 で Local System として動作するという事実は、Server 2008 でも動作させるためにできることがあるという希望を与えてくれます。そうでない場合は、フォールバックして管理者としてログオンしてサービスをインストールすることもできますが、それがアプリケーションにどのような影響を与えるか (もしあれば) はわかりません。
JBoss と jstatd の両方に同じ Java HotSpot(TM) 64 ビット サーバー VM バージョン 1.6.0_10 を使用しており、jvmstat 3.0 から visualgc を実行しています。
他の誰かがこの問題に遭遇したり、私が試すことができることについて何か提案がありますか?