Я довольно давно использую оболочку службы Java в пользовательском приложении, и она работает нормально. Начиная с обновления нашего приложения до новой версии за последние несколько дней JVM начал висит, а затем обертка печатает это в журнале: JVM появляется зависанием: время ожидания сигнала от JVM.Java появляется под вихрем
Затем он автоматически завершает работу JVM и снова запускает приложение. Это происходит примерно через 10 часов работы, что затрудняет отладку.
Конечно, я собираюсь ознакомиться с изменениями, которые мы сделали, но никаких серьезных изменений, которые, как я подозревал, не вызвали бы этот тип проблемы.
Где я могу попытаться выяснить, что происходит? Отладочные сообщения из приложения не указывают ничего интересного. Если JVM просто падает, обычно создается дамп, который может помочь в его отладке, но он висит, поэтому он не создает дамп. Если я заставляю его не перезапускать службу автоматически, есть ли что-нибудь, что я могу сделать, чтобы получить полезную информацию из JVM перед ее перезагрузкой?
Мне кажется, что JVM не должен зависать от типичных ошибок программирования. С чем вы столкнулись раньше, это может привести к зависанию JVM?
Linux RHEL4, Java 1.6.0, Intel 32 бит. Я отслеживаю количество потоков и использование памяти; пока он не использует большую часть. Мы не используем много потоков. Мы просто запускаем несколько минут при запуске приложения, чтобы посмотреть каждые несколько минут, чтобы увидеть, есть ли что-то для обработки. –
Насколько последовательны 10 часов? На самом деле существует только пара возможностей: либо * некоторая * истощение ресурсов, либо случайный тупик/задержка. Какое приложение? –
Совсем несовместимо. Пока это происходит только три раза. На самом деле это похоже на то, что среднее значение немного выше 10 часов. Это произошло в 12, 14 и 19 часов. То, что я собираюсь сделать, это установить его не на автоматический перезапуск, чтобы я мог немного исследовать состояние, когда это произойдет. –