Вопрос

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

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

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

Это было полезно?

Решение

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

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

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top