Я уже давно использую оболочку Java Service в пользовательских приложениях, и она работает нормально. После обновления нашего приложения до новой версии в последние несколько дней JVM начала зависать, а затем обертка печатает это в журнале:
JVM зависает: время ожидания сигнала от JVM истекло.
Затем он автоматически завершает работу JVM и снова запускает приложение. Это происходит после 10 часов работы, что затрудняет отладку.
Конечно, я собираюсь просмотреть изменения, которые мы внесли, но никаких серьезных изменений не было внесено, что, я подозреваю, вызывает такие проблемы.
Где я могу посмотреть, чтобы попытаться выяснить, что происходит? Отладочные сообщения из приложения не показывают ничего интересного. Если JVM просто выходит из строя, он обычно создает дамп, который может помочь в его отладке, но он зависает, поэтому он не создает дамп. Если я сделаю так, чтобы служба не перезапускалась автоматически, могу ли я что-нибудь сделать, чтобы получить полезную информацию из JVM перед ее перезапуском?
Мне кажется, что JVM не должна зависать от типичных ошибок программирования. С чем вы столкнулись до того, как это может привести к зависанию JVM?