Я могу заставить некоторых отправителей отправлять сообщения, но когда я создаю двух получателей в одном сеансе, первый работает, а второй блокируется. В отладке я вижу, что размер списка очереди, который получил второй получатель, равен нулю. Я обнаружил, что сеанс создается для одного потока, я не знаю, связана ли эта проблема с небезопасным потоком?
Я использую реализацию ActiveMQ.
2
Hesey
15 Апр 2011 в 14:32
1 ответ
Сеанс JMS является абсолютно однопоточным. Таким образом, у него может быть только один активный приемник. У вас есть 2 варианта:
- Используйте одно соединение с несколькими сеансами, каждый сеанс имеет приемник. Соединения являются потокобезопасными, и вы можете создавать множество сеансов из этих отдельных соединений.
- ActiveMQ предоставляет вам ряд возможностей, касающихся мультиплексирования нескольких пунктов назначения, поэтому вместо нескольких получателей , вы можете сосредоточиться на одном, но использовать средства ActiveMQ для создания виртуальных пунктов назначения, которые будут направлять все сообщения, которые вы хотите, через одного получателя.
См. этот вопрос.
2
Community
23 Май 2017 в 15:22
Похожие вопросы
Связанные вопросы
Новые вопросы
session
Сеанс относится к связи между одним клиентом и сервером. Сеанс специфичен для пользователя, и для каждого пользователя создается новый сеанс для отслеживания всех запросов от этого пользователя.