Убивать зависающий процесс
От: Pharod  
Дата: 26.05.06 09:45
Оценка:
Привет,

Есть такая проблема: есть приложение на Java и оно периодически обвисает.
Нужно имплементировать солюшен который позволит это превентить, то есть приложение
будет принимать значение таймаута и самоликвидироватся если что — это не сложно.
Но возникла мысль — нельзя ли извлечь какую то информацию перед тем как прибивать,
которая поможет найти проблему? Там список тредов например и их состояния итд.
Нет ли опыта у кого?
wbr,
Igor
Re: Убивать зависающий процесс
От: Blazkowicz Россия  
Дата: 26.05.06 09:48
Оценка:
Здравствуйте, Pharod, Вы писали:

P>Есть такая проблема: есть приложение на Java и оно периодически обвисает.

P>Нужно имплементировать солюшен который позволит это превентить, то есть приложение
P>будет принимать значение таймаута и самоликвидироватся если что — это не сложно.
P>Но возникла мысль — нельзя ли извлечь какую то информацию перед тем как прибивать,
P>которая поможет найти проблему? Там список тредов например и их состояния итд.
P>Нет ли опыта у кого?

Может лучше взять профайлер и найти причину некоректного поведения, чем вставлять подпорку через одно место?
Re: Убивать зависающий процесс
От: Crypto Украина  
Дата: 26.05.06 10:23
Оценка:
Здравствуйте, Pharod, Вы писали:

P>Но возникла мысль — нельзя ли извлечь какую то информацию перед тем как прибивать,

P>которая поможет найти проблему? Там список тредов например и их состояния итд.
P>Нет ли опыта у кого?

Еще можно зависшему java процессу на *nix-ах послать "kill -3 <pid>" и посмотреть на чем висят его потоки.
Re: Убивать зависающий процесс
От: York Россия  
Дата: 26.05.06 10:44
Оценка:
Здравствуйте, Pharod, Вы писали:

P>Привет,


P>Но возникла мысль — нельзя ли извлечь какую то информацию перед тем как прибивать,

P>которая поможет найти проблему? Там список тредов например и их состояния итд.
P>Нет ли опыта у кого?

Посмотри это сообщение: Re: Как получить дамп памяти при OutOfMemoryError?
Автор: Andrei N.Sobchuck
Дата: 12.04.06
.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Пищальников Юрий
Re[2]: Убивать зависающий процесс
От: Pharod  
Дата: 26.05.06 10:44
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Может лучше взять профайлер и найти причину некоректного поведения, чем вставлять подпорку через одно место?


Это продакшен, решение нужно им сейчас — а когда мы сможем воспроизвести и пофиксить — большой вопрос.
Не все в мире так идеально как хочется.
wbr,
Igor
Re[2]: Убивать зависающий процесс
От: Pharod  
Дата: 26.05.06 10:47
Оценка:
Здравствуйте, York, Вы писали:

Y>Посмотри это сообщение: Re: Как получить дамп памяти при OutOfMemoryError?
Автор: Andrei N.Sobchuck
Дата: 12.04.06
.


спасибо, интересно — не знал этого.
wbr,
Igor
Re: Убивать зависающий процесс
От: Gurney Великобритания www.kharlamov.biz
Дата: 26.05.06 12:35
Оценка:
Pharod wrote:

> Есть такая проблема: есть приложение на Java и оно периодически обвисает.

> Нужно имплементировать солюшен который позволит это превентить, то есть
> приложение
> будет принимать значение таймаута и самоликвидироватся если что — это не
> сложно.
Используй Tanuki Service Wrapper. Он это умеет и много что еще.
Posted via RSDN NNTP Server 2.0
Re[3]: Убивать зависающий процесс
От: nikonoff  
Дата: 08.08.06 13:23
Оценка:
Здравствуйте, Pharod, Вы писали:

P>Здравствуйте, Blazkowicz, Вы писали:


B>>Может лучше взять профайлер и найти причину некоректного поведения, чем вставлять подпорку через одно место?


P>Это продакшен, решение нужно им сейчас — а когда мы сможем воспроизвести и пофиксить — большой вопрос.

P>Не все в мире так идеально как хочется.

on linux: kill -QUIT <java process id>
result -> catalina.out (for tomcat) — processes activity

NIkon DSL
Re: Убивать зависающий процесс
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 09.08.06 04:14
Оценка: +1
Здравствуйте, Pharod, Вы писали:

P>Нет ли опыта у кого?

Подобные проблемы обычно решали развитой системой логирования.
Однажды, был достаточно долгий спор по поводу необходимости написания процесса, следящего за основным процессом и при его зависании производящем перезапуск. В конце-концов решили этого не делать, дабы не уходить от проблем ненадежности программы подобным способом, а решать их непосредственно сталкиваясь с очередной ошибкой.
... << RSDN@Home 1.2.0 alpha rev. 655>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.