Возможно ли, чтобы DefaultMessageListenerContainer создавал n количество сеансов JMS каждый из разных соединений JMS

Я настроил свой DefaultMessageListenerContainer с реализацией javax.jms.MessageListener, подключенной к нему.

Я использую MQQueueConnectionFactory, подключенный к cachingconnectionFactory. Задайте для cacheconsumers значение true в DefaultMessageListenerContainer и задайте для sessionCacheSize значение, эквивалентное количеству одновременных потребителей.

Я вижу, что когда для concurrentconsumers установлено значение 10, десять сеансов JMS создаются из одного соединения JMS. Есть ли способ создать сеансы JMS из 10 разных соединений JMS?

Пожалуйста, порекомендуйте.


person Vidya_85    schedule 12.11.2014    source источник


Ответы (1)


Не при использовании фабрики соединений кэширования, это подкласс SingleConnectionFactory; используйте фабрику соединений поставщика напрямую, если вам нужны отдельные соединения. Почему вам все равно нужны/нужны отдельные подключения?

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

См. этот ответ для более подробного объяснения.

person Gary Russell    schedule 12.11.2014
comment
Я использую интеграцию Spring, как я объяснил в этом -adapte" title="как обрабатывается сеанс jms в потоке, содержащем исходящий адаптер входящего адаптера"> stackoverflow.com/questions/26671299/ . Сегодня я измерил производительность между реализацией IBM MQ jms и моей новой реализацией spring Integration для IBM MQ. Разница выглядит огромной, и мне нужно улучшить производительность моего приложения при интеграции Spring. Думаю, это может помочь в улучшении производительности. Не могли бы вы предложить. - person Vidya_85; 12.11.2014