потоки демона в контейнере приложения - PullRequest
2 голосов
/ 10 апреля 2009

Я недавно прочитал в сообщение на форуме Smack, что

Запуск потоков демонов на сервере Java EE - это большой нет, нет

В основном Smack XMPPConnection запускает один поток демона для мониторинга входящих данных и другое для отправки исходящих данных с / на сервер Jabber соответственно. Разумно ли использовать потоки демона для прослушивания записи / чтения в этом сценарии?

Ответы [ 2 ]

1 голос
/ 10 апреля 2009

Да, XMPPConnection создает два потока - один для прослушивания / чтения и один для записи. Но они живут только до тех пор, пока экземпляр XMPPConnection, как я полагаю, не вечен.

«Запуск потоков демонов на сервере Java EE - это большое, нет, нет»

Вы пишете EJB, совместимый со спецификацией? Если это так, то это относится. Спецификация говорит не делай этого. Спецификация EJB 2.1:

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

Или это просто веб-приложение, которое работает в Tomcat? Если это так, то я не вижу никакой фундаментальной проблемы. Без потоков ваш клиент Smack не сможет обмениваться данными с сервером.

0 голосов
/ 10 апреля 2009

Я использовал Smack API только для клиентских подключений, которые являются автономными программами. Сначала вам следует вернуться к выбору (или цели) Smack API внутри контейнера J2EE.

...