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