Image

Imagesorhed wrote in Imageru_java

Category:

Аварийный выход.

Здравствуйте, коллеги,

я никогда не писал программы для управления ядерными реакторами, но столкнулся с похожей проблемой. Через несколько дней я собираюсь подключать один из своих модулей к настоящему брокерскому счёту с большими реальными деньгами. И хотя всё проходило интенсивное тестирование, риск ошибки нельзя исключить.

В связи с этим различные части модуля параллельно отслеживают общее состояние счёта, и в случае возникновения расхождений в бухгалтерии должны произвести следующие действия:

1) Сообщить емэйлом администратору о возникшей проблеме,
2) Произвести мгновенный жёсткий аварийный выход из JVM. Мне наплевать, что не закроются соединения, что испортится база данных (есть бэкап), и т.п. — всё это ерунда по сравнению с возможной потерей денег.

В связи с чем вопрос: как выполнить пункт 2? System.exit() недостаточно, так как оно не останавливает все треды. Ставить всем тредам флаги isRunning, как положено, в данном случае не годится. Нужно просто выпасть из JVM. Что предложите?