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