Объект-соединение (Connection) JMS представляет соединение JMS-клиента с JMS — провайдером. В спецификации JMS говорится, что объект Connection инкапсулирует открытое соединение с JMS-провайдером и, обычно, представляет открытый сокет TCP/IP между клиентом и JMS-провайдером. Однако это зависит от реализации JMS- провайдера.
Важно отметить, что создание объекта Connection обычно приводит к выделению ресурсов в самом JMS-провайдере, т. е. ресурсы выделяются вне процесса, запустившего JMS-клиент. Поэтому следует позаботиться о закрытии соединения, если оно более не требуется клиентскому JMS-приложению. Вызов метода close объекта Connection приводит к вызову методов close для всех объектов, которые были через него созданы.
Создание объекта Connection – это также тот момент, когда JMS-клиент проходит аутентификацию в JMS-провайдере. Если верительные данные не указаны, то используется пользовательский идентификатор, из-под которого запущен JMS-клиент.
Объекты Connection поддерживают параллельное использование.
Для создания объектов Connection используются объекты ConnectionFactory. Интерфейсы соединений, как они определены в спецификации JMS, показаны в табл. 8.3.
Код, необходимый для создания объекта Connection, показан в примере 8.2.
Пример 8.2. Создание JMS-соединений
// Верительные данные пользователя String userID = "jmsClient"; String password = "password";
// Создание соединения без указания верительных данных Connection conn1 = connFactory.createConnection();
// Создание соединения с указанием верительных данных
Connection conn2 = connFactory.createConnection(userID, password);