Я вызываю API-интерфейс поставщика, и на некоторых серверах кажется, что JVM переходит в низкопрофильный цикл опроса после входа в API (процессор со 100% -ным использованием). Такое же приложение на других серверах не демонстрирует такого поведения. Это происходит в WebSphere и Tomcat. Среда сложна для настройки, поэтому трудно попытаться сделать что-то вроде профилирования в Eclipse.
Есть ли способ профилировать (или какой-либо другой метод проверки) существующее Java-приложение, запущенное в Tomcat, чтобы узнать, какие методы выполняются, пока он находится в состоянии этого спинвейта? Приложение выполняет только один метод, когда он попадает в это состояние (метод поставщика). Поставщик не может воспроизвести поведение (конечно).
Обновление:
Используя JConsole, я смог определить, кто работает и что они делают. Мне потребовалось несколько часов, чтобы понять, почему это происходит. Проблема заключалась в том, что используемая банком API поставщика не соответствовала точно той конфигурации базы данных, которую она использовала. Он не выполнял проверку трассировки и контроля производительности на серверах, которые имели незначительное несоответствие в конфигурации. Я использовал другую банку, и все хорошо.
Итак, спасибо, Джошуа, за ваш ответ. JConsole был чрезвычайно прост в настройке и использовании для мониторинга существующего приложения.
@Cringe - Я несколько экспериментировал с некоторыми из предложенных вами опций. У меня возникли проблемы с настройкой JProfiler, это выглядит хорошо (но дорого). Вперед, я пошел вперед и добавил плагин Eclipse Profiler, и я буду изучать различные профилировщики с открытым исходным кодом для сравнения функциональности.