Каков наилучший способ отслеживания (Java) смертей процесса на коробке Windows? - PullRequest
1 голос
/ 27 марта 2009

У нас есть любопытная проблема с умиранием наших процессов Java.

Приложение не отслеживает и не записывает что-либо в журналы, процесс просто случайно умирает. Это интенсивно используемое приложение, но проблема появляется только раз в месяц.

В настоящее время мы изучаем возможность использования Process Monitor , но любые другие предложения приветствуются.

Edit:

Это распределенное Java-приложение, работающее в Weblogic с собственной веб-инфраструктурой (да, это ужасная идея, но оно работает уже восемь лет), которое подключается к Oracle.

-

Недостаточно памяти? По словам Брайана Агнью, наши журналы перехватят java.lang.OutOfMemoryException.

Записывать сбои в журнал? Я не думаю, что у Java когда-либо будет такой шанс, смерть происходит на уровне процесса, а не на выходе из Java.

Ответы [ 3 ]

2 голосов
/ 27 марта 2009

Можете ли вы обернуть его в какой-нибудь сценарий оболочки, который фиксирует файлы журнала (stdout / stderr) и код выхода (который должен дать некоторое представление о том, как он умер)? На выходе из JVM вы также можете получить статистику уровня машины, используя WMI

Если сама виртуальная машина выходит из строя, она оставляет файл hs_err_pid ..., содержащий трассировки стека, отладочную информацию на уровне машины. Затем вы можете использовать это для диагностики проблемы с виртуальной машиной. См. эту запись в блоге для получения дополнительной информации.

Если проблема связана с поведением приложения, возможно, стоит взглянуть на JConsole , хотя из вашего описания проблемы это звучит гораздо больше как проблема ВМ низкого уровня.

(я полагаю, вы используете последнюю версию виртуальной машины с номером версии Java и т. Д.)

0 голосов
/ 01 апреля 2009

VisualVM - это новый инструмент, который облегчает мониторинг приложений Java:

https://visualvm.dev.java.net/description.html

"VisualVM - это инструмент, который предоставляет подробную информацию о приложениях Java во время их работы. Он предоставляет интуитивно понятный графический интерфейс пользователя, который позволяет легко просматривать информацию о нескольких приложениях Java."

0 голосов
/ 27 марта 2009

Вы можете использовать сервер Linux NAGIOS для мониторинга работоспособности ваших компьютеров и служб Windows! Взгляните на: nagios-monitor-windows .

Если у вас есть такие проблемы с вашим Java-приложением! Вы должны проверить это и отладить! Приложения не должны умирать без следа! Ищите файлы журналов! От какого производителя это приложение? Или это само написано? Попробуйте применить другой уровень Log4J / Logger / Debug. Контролируйте свою Систему с помощью кактусов и т. Д., Чтобы уменьшить вероятность такого сбоя. Поговорите с поставщиком программного обеспечения.

Достаточно ли доступно памяти? Может быть, приложение не хватает памяти? Это отдельный процесс Java или процесс Java с сервера Tomcat / Jboss?

Вы записали время сбоя в журнал? Появляются они в разных временных срезах? Или они кажутся почти круглыми?

...