2010-11-01 3 views
4

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

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

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

Спасибо!

+1

Возможно, вы задаете тот же вопрос (http://stackoverflow.com/questions/4046840/spring-jmstemplate-and-apache-activemq-why-so-many-connections) по-другому? – Raghuram

+0

Да, я, изучив его, я подумал, что это проблема ActiveMQ. – wsb3383

ответ

1

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

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

Итак, почему соединения остаются открытыми на сервере JMS? – wsb3383

2

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

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

Смежные вопросы