ベンダーのJavaAPIを呼び出していますが、一部のサーバーでは、JVMがAPIにログインした後に優先度の低いポーリングループに入っているようです(CPU使用率100%)。他のサーバー上の同じアプリは、この動作を示しません。これは、WebSphereとTomcatで発生します。環境の設定は難しいため、Eclipse内でプロファイリングのようなことを試みるのは困難です。
Tomcatで実行されている既存のJavaアプリをプロファイリング(または他の検査方法)して、このスピンウェイトのような状態で実行されているメソッドを見つける方法はありますか?この状態になると、アプリは1つのメソッド(ベンダーのメソッド)のみを実行します。ベンダーはその動作を再現できません(もちろん)。
アップデート:
JConsoleを使用して、誰が実行していて、何をしているかを判断することができました。それがなぜそれをしているのかを理解するのに数時間かかりました。問題は、使用されていたベンダーのAPIjarが使用されていたデータベース構成と正確に一致しなかったことです。デフォルトでは、構成がわずかに一致していないサーバーでトレースとパフォーマンスの監視が有効になっています。私は別の瓶を使用しました、そしてすべては順調です。
ジョシュア、あなたの答えに感謝します。JConsoleは、セットアップと既存のアプリケーションの監視に非常に簡単に使用できました。
@Cringe-私はあなたが提案したオプションのいくつかでいくつかの実験をしました。JProfilerのセットアップで問題が発生しましたが、見た目は良さそうです(ただし高価です)。今後、Eclipse Profilerプラグインを追加し、さまざまなオープンソースプロファイラーを調べて機能を比較します。