Уведомление о сбое JVM в виде всплывающего сообщения?

Я работаю над проектом, в котором моя работа состоит в том, чтобы сломать JVM, выполнив программу. В JVM у меня работает Tomcat с развернутым в нем веб-приложением. Как только JVM дает сбой, я получаю сообщение об ошибке «Страница не найдена. Сервер может быть отключен» в браузере для веб-приложения, как и в случае с JVM, Tomcat также остановился.

Теперь я хочу создать всплывающее окно, как только JVM выйдет из строя. Всплывающее окно скажет «JVM разбился!». Подскажите, пожалуйста, как написать такой код?

Заранее спасибо!


person kajarigd    schedule 26.11.2013    source источник


Ответы (2)


Методы UnInvoked finalize() следует вызывать при выходе из jvm. Вам нужно переопределить метод finalize в одном из ваших классов и сохранить его ссылку до тех пор, пока jvm не будет активен. При сбое JVM этот метод будет вызываться. Но это не может быть перенесено в браузер, я думаю, так как потоки вашего контейнера будут уничтожены после сбоя JVM.

person Vineet Kasat    schedule 26.11.2013
comment
По крайней мере, для меня сбой JVM означает аварийный выход из JVM, например, из-за недопустимого доступа к памяти в собственном коде (собственном коде JVM или стороннем коде, вызываемом через JNI). В этом случае финализаторы запускаться не будут. И даже в случае обычного выхода из JVM, такого как вызов System.exit(), финализаторы запускаются только в том случае, если Runtime.runFinalizersOnExit() включен — по умолчанию он отключен, и, как указано в его собственной документации, он устарел. и его включение не рекомендуется, так как это может привести к зависанию во время выхода из JVM. - person Simon Kissane; 16.08.2015

Возможно, вам нужна другая служба, отслеживающая состояние JVM.

Когда JVM дает сбой или не может ответить, сервер уведомляет вашу страницу и предупреждает.

person lichengwu    schedule 26.11.2013