Никто не сталкивался?
Идет работа. В момент, когда нет никакой нагрузки, ни с того ни с сего, происходит стоп. Причем стоп вполне штатный — по логам аналогично как будто кто то crtl+c нажал. Это не падение по пямяти, креш дампа нет, останов вполне штатный.
Что может быть, как это вообще можно поймать и пофиксить — есть идеи? Привычки проглатывать исключения нет, абсолютно все логируется.
Здравствуйте, elmal, Вы писали:
E>Никто не сталкивался? E>Идет работа. В момент, когда нет никакой нагрузки, ни с того ни с сего, происходит стоп. Причем стоп вполне штатный — по логам аналогично как будто кто то crtl+c нажал. Это не падение по пямяти, креш дампа нет, останов вполне штатный. E>Что может быть, как это вообще можно поймать и пофиксить — есть идеи? Привычки проглатывать исключения нет, абсолютно все логируется.
Давным-давно, в 2003 году, у нас так останавливался JRun, запущенный как сервис на виндовом сервере. Выяснилось, что когда на этот сервер заходили через RemoteDesktop, а потом выходили, то всем приложениям рассылалось уведомление о закрытии удаленной сессии, а Java воспринимала это как сигнал к остановке приложения. Яву обновили и всё вылечилось. Ява правда была 1.3 Но на всякий случай покопай в этом направлении тоже.
Здравствуйте, avpavlov, Вы писали:
A>Давным-давно, в 2003 году, у нас так останавливался JRun, запущенный как сервис на виндовом сервере. Выяснилось, что когда на этот сервер заходили через RemoteDesktop, а потом выходили, то всем приложениям рассылалось уведомление о закрытии удаленной сессии, а Java воспринимала это как сигнал к остановке приложения. Яву обновили и всё вылечилось. Ява правда была 1.3 Но на всякий случай покопай в этом направлении тоже.
А как это смогли поймать и выяснить ?
Здравствуйте, elmal, Вы писали:
E>А как это смогли поймать и выяснить ?
Повесь какой-нибудь слушатель на ServletContextDestroy, а ещё лучше на JMX томката. И в нем делай дамп стэка. По нему примерно можно прикинуть откуда вызов пришел.
Здравствуйте, elmal, Вы писали:
e> Никто не сталкивался? e> Идет работа. В момент, когда нет никакой нагрузки, ни с того ни с сего, происходит стоп. Причем стоп вполне штатный — по логам аналогично как будто кто то crtl+c нажал. Это не падение по пямяти, креш дампа нет, останов вполне штатный. e> Что может быть, как это вообще можно поймать и пофиксить — есть идеи? Привычки проглатывать исключения нет, абсолютно все логируется.
Проверьте jvm флажок -Xrs
If the JVM is run as a service (for example, the servlet engine for a web server), it can receive CTRL_LOGOFF_EVENT but should not initiate shutdown since the operating system will not actually terminate the process. To avoid possible interference such as this, the -Xrs command-line option has been added beginning with J2SE 1.3.1. When the -Xrs option is used on Sun's JVM, the JVM does not install a console control handler, implying that it does not watch for or process CTRL_C_EVENT, CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, or CTRL_SHUTDOWN_EVENT.
Ну когда добрались до виндового Event Log (а администраторов в те времена у нас не было, поэтому в журнал заглянули после многонедельных бесплодных поисков), то обнаружили странную закономерность, что остановка сервера всегда совпадает, с остановкой print spooler сервиса (в журнал ремоут десктопа мы в тот момент не догадались заглянуть Ну начали копать эту закономерность и тогда уже нашли и закрытие сессии и баг в Яве.
Re[4]: Самопроизвольный стоп томката 7
От:
Аноним
Дата:
24.04.13 03:54
Оценка:
Здравствуйте, avpavlov, Вы писали:
E>>А как это смогли поймать и выяснить ?
A>Ну когда добрались до виндового Event Log (а администраторов в те времена у нас не было, поэтому в журнал заглянули после многонедельных бесплодных поисков), то обнаружили странную закономерность, что остановка сервера всегда совпадает, с остановкой print spooler сервиса (в журнал ремоут десктопа мы в тот момент не догадались заглянуть Ну начали копать эту закономерность и тогда уже нашли и закрытие сессии и баг в Яве.
Представляю, сколько кайфа поймали, когда докопались до причины
Здравствуйте, elmal, Вы писали:
E>Никто не сталкивался? E>Идет работа. В момент, когда нет никакой нагрузки, ни с того ни с сего, происходит стоп. Причем стоп вполне штатный — по логам аналогично как будто кто то crtl+c нажал. Это не падение по пямяти, креш дампа нет, останов вполне штатный. E>Что может быть, как это вообще можно поймать и пофиксить — есть идеи? Привычки проглатывать исключения нет, абсолютно все логируется.
На линупсе (не в курсе каком точно) было когда консоль putty закрываешь, а не отключаешься по Ctrl+D
A>Давным-давно, в 2003 году, у нас так останавливался JRun, запущенный как сервис на виндовом сервере. Выяснилось, что когда на этот сервер заходили через RemoteDesktop, а потом выходили, то всем приложениям рассылалось уведомление о закрытии удаленной сессии, а Java воспринимала это как сигнал к остановке приложения. Яву обновили и всё вылечилось. Ява правда была 1.3 Но на всякий случай покопай в этом направлении тоже.
На Oracle JDK 1.6.х такое и сейчас случается.
Здравствуйте, Baudolino, Вы писали:
B>На Oracle JDK 1.6.х такое и сейчас случается.
Только если сервис запустить под юзером. Есть ведь и отдельный аккаунт для постоянных сервисов.
B>>На Oracle JDK 1.6.х такое и сейчас случается. B>Только если сервис запустить под юзером. Есть ведь и отдельный аккаунт для постоянных сервисов.
Это да, но на эти грабли народ регулярно наступает
Здравствуйте, Baudolino, Вы писали:
B>>Только если сервис запустить под юзером. Есть ведь и отдельный аккаунт для постоянных сервисов. B>Это да, но на эти грабли народ регулярно наступает
Ну, не знаю. По-умолчанию сервис работает под Local System. Это же надо пойти и поменять на юзера. Я так однажды сделал чтобы подцепиться из jvisualvm. Больше так не делаю. Приходится упорно танцевать с бубном чтобы jvisualvm запускать под Local System через RDP.