Накладные расходы на соединение JMS

Сколько стоит создание следующих объектов каждый раз при отправке сообщения в очередь? Объекты: javax.jms.Connection, javax.jms.Session, javax.jms.MessageProducer

В моем коде всякий раз, когда я хочу отправить сообщение, я создаю выше 3 объекта.

Я знаю, что хорошо создавать объект только один раз и использовать его, но соединение/сеанс переходит в IllegalState после аварийного переключения сервера. Мой connectionFactory может повторно подключиться, но не может обновить объект соединения/сеанса.

Может кто-нибудь объяснить мне накладные расходы?


person Rajesh    schedule 02.09.2014    source источник


Ответы (2)


https://developer.jboss.org/wiki/ShouldICacheJMSConnectionsAndJMSSessions

Высокопроизводительный обмен сообщениями JMS

:)

person smajlo    schedule 02.09.2014

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

Вы можете количественно оценить накладные расходы, запустив несколько тестов с созданием соединений/сеансов и без них каждый раз. Но приведенное выше объяснение дает подсказку о том, что будет связано с созданием/закрытием соединения.

person Shashi    schedule 02.09.2014