Автономное приложение Java умирает через несколько дней - PullRequest
0 голосов
/ 03 мая 2011

У нас есть приложение Java, которое подключается через RMI к другому приложению Java.Есть несколько экземпляров этого приложения, запущенных одновременно, и через несколько дней экземпляр просто прекращает обработку ... ЦП находится в 0, и у меня есть дополнительный поток, слушающий определенный порт, который помогает завершить работу приложения.

Я могу подключиться к определенному порту, но приложение ничего не делает.

Мы используем Log4j для ведения журнала, и ничего не записывается, поэтому никаких исключений не выдается.

Мы также используем c3p0 для соединений с БД.

У кого-нибудь есть идеи?

Спасибо,

Ответы [ 2 ]

4 голосов
/ 03 мая 2011

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

Поскольку вы работаете в Linux, вы можете получить дамп потока с помощью следующей команды

kill -3 <pid>

Если вам нужна помощь в чтении вывода, пожалуйста, опубликуйте его в исходном вопросе.

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

0 голосов
/ 03 мая 2011

Гул ... Я бы предложил использовать JMetter , чтобы подчеркнуть Приложение и принять к сведению все, что может происходить странно (например, утечки памяти, тупики и т. Д.).Также просмотрите код для любых исключений, которые могут прервать программу (или вызовы System.exit ()).Наконец, если другие люди имеют доступ к компьютеру, имеет смысл проверить, не был ли процесс каким-либо образом завершен вручную.

...