JMS-сеанс используется для создания отправителей и получателей сообщений для одного JMS-провайдера. Он создается из объекта-соединения (Connection).
Он также используется для определения области действия локальных транзакций. Он может сгруппировать несколько взаимодействий, связанных с получением и отправкой сообщений в единый модуль работы. Однако модуль работы охватывает только взаимодействия, осуществляемые отправителями и получателямисообщений, созданными из данного объекта-сеанса (Session). Транзакционный сеанс может завершить транзакцию, используя методы commit и rollback объекта Session. После завершения текущей транзакции автоматически запускается новая транзакция.
Объекты-сеансы не поддерживают параллельное использование. К ним не могут одновременно обращаться разные потоки внутри клиентского JMS-приложения. Если для JMS-клиента нужно, чтобы один поток отправлял сообщения, а другой – получал их, то спецификация JMS рекомендует использовать в JMS-клиенте отдельные объекты Session для каждого потока.
Интерфейсы сеансов, как они определены в спецификации JMS, показаны в табл. 8.4.
Код, необходимый для создания объекта Session, показан в примере 8.3.
Пример 8.3. Создание JMS-сеансов
// Создание нетранзакционного сеанса
Session session = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);