これが以前に尋ねられた質問の繰り返しである場合は申し訳ありませんが、ここや他の場所で提供されている解決策を試しましたが、どれもうまくいかないようです.
シナリオ: ファイアウォールの背後にある運用 Tomcat 7 サーバーのプロファイルを作成する必要があります。このサーバーへの SSH アクセスしかありません。最適なプロファイリング ツールは Visualvm であり、これらのサーバーには GUI がインストールされていません。サーバーと接続しようとしているマシンの両方で、Ubuntu 10.04 サーバー LTS を実行しています。
考えられる解決策: SSH トンネル経由で visualvm を使用することは可能であるように思われ、以下のリンクはこれを行うためのかなり詳細なガイドを提供します:
また、次の 2 行を使用して、Tomcat の /conf ディレクトリに jmxremote.access ファイルを追加しました。
monitorRole readonly
controlRole readwrite
問題: 記事に記載されている手順に従いましたが、問題ないようです。jmxterm とガイドに記載されている接続文字列を使用して、サーバーの jmx ポートに (サーバーから) ローカルに接続できます。
ガイドに従ってテストとしてローカル tomcat を構成しましたが、Visualvm は接続文字列を使用してこの tomcat インスタンスに問題なく接続できました。
ただし、VisualVM は SSH トンネル経由でリモート サーバーに接続しません。JConsole の方がシンプルでログ機能が優れているため、試してみましたが、次の一連のメッセージが表示されます。
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] finding stub...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] connecting stub...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] getting connection...
FINER: [javax.management.remote.rmi.RMIConnector: jmxServiceURL=service:jmx:rmi://localhost:12009/jndi/rmi://localhost:12008/jmxrmi] failed to connect: java.rmi.NoSuchObjectException: no such object in table
ここで私が間違ったことについてのアイデアはありますか? どんな助けでも大歓迎です!
ありがとうございました。