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