Spring JmsTemplate закрывает соединения по умолчанию? - PullRequest
6 голосов
/ 02 ноября 2010

Я написал приложение JMS, которое работает в веб-службе на Glassfish (также развернуло его в JBoss), и заметил, что после обработки нескольких сообщений через MessageListener MDP серверу JMS не хватает соединений!

Пробовал с Apache ActiveMQ и внутренним JMS-брокером Glassfish (openMQ?)

Есть ли способ проверить, почему это происходит? Если это стандартное поведение JmsTemplate, каков мой путь для правильной разработки производителей и потребителей JMS?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

Пружинный JMSTemplate будет закрываться и создавать все ресурсы (Соединения, Потребители, Производители ...) каждый раз, когда он получает или отправляет сообщение. Это станет огромным узким местом для производительности, если вы не используете пулы соединений, сеансов, потребителей .....

Сказав это, да, JMSTemplate должен каждый раз закрывать ваше соединение.

1 голос
/ 02 ноября 2010

Да, соединение закрывается. См. Код метода выполнения:

JmsUtils.closeSession(sessionToClose);
ConnectionFactoryUtils.releaseConnection(
    conToClose, getConnectionFactory(), startConnection);
...