Аварийный выход.
Здравствуйте, коллеги,
я никогда не писал программы для управления ядерными реакторами, но столкнулся с похожей проблемой. Через несколько дней я собираюсь подключать один из своих модулей к настоящему брокерскому счёту с большими реальными деньгами. И хотя всё проходило интенсивное тестирование, риск ошибки нельзя исключить.
В связи с этим различные части модуля параллельно отслеживают общее состояние счёта, и в случае возникновения расхождений в бухгалтерии должны произвести следующие действия:
1) Сообщить емэйлом администратору о возникшей проблеме,
2) Произвести мгновенный жёсткий аварийный выход из JVM. Мне наплевать, что не закроются соединения, что испортится база данных (есть бэкап), и т.п. — всё это ерунда по сравнению с возможной потерей денег.
В связи с чем вопрос: как выполнить пункт 2? System.exit() недостаточно, так как оно не останавливает все треды. Ставить всем тредам флаги isRunning, как положено, в данном случае не годится. Нужно просто выпасть из JVM. Что предложите?
я никогда не писал программы для управления ядерными реакторами, но столкнулся с похожей проблемой. Через несколько дней я собираюсь подключать один из своих модулей к настоящему брокерскому счёту с большими реальными деньгами. И хотя всё проходило интенсивное тестирование, риск ошибки нельзя исключить.
В связи с этим различные части модуля параллельно отслеживают общее состояние счёта, и в случае возникновения расхождений в бухгалтерии должны произвести следующие действия:
1) Сообщить емэйлом администратору о возникшей проблеме,
2) Произвести мгновенный жёсткий аварийный выход из JVM. Мне наплевать, что не закроются соединения, что испортится база данных (есть бэкап), и т.п. — всё это ерунда по сравнению с возможной потерей денег.
В связи с чем вопрос: как выполнить пункт 2? System.exit() недостаточно, так как оно не останавливает все треды. Ставить всем тредам флаги isRunning, как положено, в данном случае не годится. Нужно просто выпасть из JVM. Что предложите?
