JVM возвращает ошибку 143 - PullRequest
       16

JVM возвращает ошибку 143

6 голосов
/ 06 августа 2011

Java-приложение, работающее как запланированное задание в Windows 2003, аварийно завершило работу без журналов или чего-либо, что могло бы помочь выяснить, что произошло.Единственная доступная информация - приложение вернуло код 143 (8F).Этот код ошибки был получен из журнала запланированных задач.

Кто-нибудь знает, что означает этот код ошибки (143)?Возможно ли, что выход пользователя из системы может привести к прекращению работы приложения?

Спасибо,

Ответы [ 3 ]

7 голосов
/ 01 марта 2016

143 часто означает, что приложение было прекращено из-за команды SIGTERM. Смотри также https://unix.stackexchange.com/questions/10231/when-does-the-system-send-a-sigterm-to-a-process

Однако, обратите внимание, что приложение может использовать 143 для своего собственного пользовательского результата.

5 голосов
/ 06 августа 2011

Код ошибки JVM 143 означает Внутреннее поле должно быть действительным .Это обсуждается на OTN дискуссионных форумах .Тем не менее, вывод, похоже, что-то убило ваш процесс.

Я подозреваю, что это действительно может быть вызвано выход пользователя из системы.

2 голосов
/ 06 апреля 2017

Выход пользователя из системы будет сигнализировать сигнал CTRL_LOGOFF_EVENT всем запущенным процессам.Начиная с https://msdn.microsoft.com/en-us/library/windows/desktop/aa376876(v=vs.85).aspx:

Система также отправляет управляющий сигнал CTRL_LOGOFF_EVENT каждому процессу во время операции выхода из системы.

Теперь при определенных обстоятельствах она завершает работу Javaприложение с кодом ошибки 143 (SIGTERM).См. https://bugs.openjdk.java.net/browse/JDK-6871190.

Ну, в любом случае, чтобы предотвратить это, нужно запустить Java с параметром -Xrs.Начиная с https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.win.80.doc/diag/appendixes/cmdline/Xrs.html:

Установка -Xrs запрещает среде исполнения Java ™ обрабатывать любые внутренние или внешние сигналы, такие как SIGSEGV и SIGABRT.

Так что вам следует начатьваше приложение Java с чем-то вроде:

>java -Xrs -jar myapplication.jar

PS:

Соотношение между SIGTERM и 143 числом объясняется в https://unix.stackexchange.com/questions/10231/when-does-the-system-send-a-sigterm-to-a-process#comment13523_10231.

...