Запуск пакетных процессов в Bea Weblogic - PullRequest
1 голос
/ 02 апреля 2009

В настоящее время у нас есть пакетные задания на Java, которые обрабатывают несколько (иногда больших) файлов. Эти задания могут занять некоторое время. Мы запускаем эти файлы непосредственно в JVM, используя потоки Java, которые постоянно работают в цикле. (обработать файлы и подождать некоторое время).

Теперь компания, в которой я работаю, хочет запустить эти задания на сервере приложений Weblogic. Не потому, что это лучше, а потому, что это стандартная платформа компании.

Потенциальная проблема, которую я вижу, заключается в том, что BEA weblogic контролирует все потоки, и по умолчанию говорится, что потоки, которые работают более 10 минут, являются потоками STUCK, что потенциально может привести к тому, что сервер окажется в состоянии FAILED.

Как лучше всего это делать в BEA Weblogic?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2009

Мониторы BEA Weblogic запрашивают потоки только в течение определенного времени. Для потоков, генерируемых кодом обработки запросов, это не так. Мы использовали планировщик Quartz (из OpenSymphony) для планирования работы в Weblogic, которая раньше занимала 3-4 часа.

1 голос
/ 09 июля 2009

Серверы Weblogic предоставляют WorkManager, которые поддерживают более длительное время выполнения потоков и оптимизированы для длительной работы (вообще говоря, они являются средой вокруг старых добрых ThreadPools). Для WorkManager вы можете определить MaxThreadStuckTime, время, после которого поток считается застрявшим и, вероятно, уничтоженным.

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