Spec-Zone.ru › OpenJDK 24

Интерфейс PooledConnection

Все известные подинтерфейсы:
XAConnection
public interface PooledConnection
Объект, предоставляющий методы для управления пулом соединений. Объект PooledConnection представляет физическое соединение с источником данных. Соединение может быть повторно использовано вместо закрытия, когда приложение с ним закончено, что уменьшает количество необходимых соединений.

Программист приложения не использует интерфейс PooledConnection напрямую; он используется инфраструктурой среднего уровня, которая управляет пулом соединений.

Когда приложение вызывает метод DataSource.getConnection, оно получает объект Connection. Если используется пул соединений, этот объект Connection фактически является дескриптором объекта PooledConnection, который представляет собой физическое соединение.

Управляющий пулом соединений, обычно сервер приложений, поддерживает пул объектов PooledConnection. Если в пуле доступен объект PooledConnection, управляющий пулом возвращает объект Connection, который является дескриптором этого физического соединения. Если доступный объект PooledConnection отсутствует, управляющий пулом вызывает метод ConnectionPoolDataSource getPoolConnection для создания нового физического соединения. Драйвер JDBC, реализующий интерфейс ConnectionPoolDataSource, создает новый объект PooledConnection и возвращает дескриптор к нему.

Когда приложение закрывает соединение, оно вызывает метод Connection close. При использовании пула соединений управляющий пулом уведомляется, поскольку он зарегистрировал себя как объект ConnectionEventListener с помощью метода ConnectionPool addConnectionEventListener. Управляющий пулом деактивирует дескриптор объекта PooledConnection и возвращает объект PooledConnection в пул соединений для повторного использования. Таким образом, когда приложение закрывает соединение, лежащее в основе физическое соединение повторно используется, а не закрывается.

Если управляющий пулом соединений обертывает или предоставляет прокси к логическому дескриптору, возвращаемому в результате вызова PoolConnection.getConnection, управляющий пулом должен выполнить одно из следующих действий, когда он закрывает или возвращает PooledConnection в пул в ответ на вызов приложения Connection.close:

  • вызвать метод endRequest на логическом дескрипторе Connection
  • вызвать метод close на логическом дескрипторе Connection

Физическое соединение не закрывается до тех пор, пока управляющий пулом не вызовет метод PooledConnection close. Этот метод обычно вызывается для плавного завершения работы сервера или если возникла критическая ошибка, сделавшая соединение непригодным для использования.

Управляющий пулом соединений часто также является управляющим пулом подготовленных запросов, поддерживая пул объектов PreparedStatement. Когда приложение закрывает подготовленный запрос, оно вызывает метод PreparedStatement close. Когда используется пул подготовленных запросов, управляющий пулом уведомляется, поскольку он зарегистрировался как объект StatementEventListener, используя метод ConnectionPool addStatementEventListener. Таким образом, когда приложение закрывает свой PreparedStatement, лежащий в основе подготовленный запрос повторно используется, а не закрывается.

С момента:
1.4

Краткое описание методов

Модификатор и тип Метод Описание
void addConnectionEventListener(ConnectionEventListener listener)
Регистрирует заданный обработчик событий, чтобы он получал уведомления о событиях на данном объекте PooledConnection.
void addStatementEventListener(StatementEventListener listener)
Регистрирует StatementEventListener с этим объектом PooledConnection.
void close()
Закрывает физическое соединение, которое представляет этот объект PooledConnection.
Connection getConnection()
Создает и возвращает объект Connection, который является дескриптором физического соединения, представленного этим объектом PooledConnection.
void removeConnectionEventListener(ConnectionEventListener listener)
Удаляет заданный обработчик событий из списка компонентов, которые будут уведомлены при возникновении события на этом объекте PooledConnection.
void removeStatementEventListener(StatementEventListener listener)
Удаляет указанный StatementEventListener из списка компонентов, которые будут уведомлены, когда драйвер обнаружит, что PreparedStatement был закрыт или является недействительным.

Подробное описание методов

getConnection

Connection getConnection() throws SQLException
Создает и возвращает объект Connection, который является дескриптором физического соединения, представленного этим объектом PooledConnection. Управляющий пулом соединений вызывает этот метод, когда приложение вызвало метод DataSource.getConnection, и нет доступных объектов PooledConnection. Подробнее см. interface description.
Возвращает:
объект Connection, который является дескриптором этого объекта PooledConnection
Исключения:
SQLException - если произошла ошибка доступа к базе данных
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
С момента:
1.4

close

void close() throws SQLException
Закрывает физическое соединение, которое представляет этот объект PooledConnection. Приложение никогда не вызывает этот метод напрямую; его вызывает модуль или менеджер пула соединений.

Подробнее см. interface description.

Исключения:
SQLException - если произошла ошибка доступа к базе данных
SQLFeatureNotSupportedException - если драйвер JDBC не поддерживает этот метод
С момента:
1.4

addConnectionEventListener

void addConnectionEventListener(ConnectionEventListener listener)
Регистрирует заданный обработчик событий, чтобы он получал уведомления о событиях на этом объекте PooledConnection.
Параметры:
listener - компонент, обычно управляющий пулом соединений, который реализовал интерфейс ConnectionEventListener и хочет получать уведомления о закрытии соединения или ошибках
См. также:
  • removeConnectionEventListener(javax.sql.ConnectionEventListener)

removeConnectionEventListener

void removeConnectionEventListener(ConnectionEventListener listener)
Удаляет заданный обработчик событий из списка компонентов, которые будут уведомлены при возникновении события на этом объекте PooledConnection.
Параметры:
listener - компонент, обычно управляющий пулом соединений, который реализовал интерфейс ConnectionEventListener и был зарегистрирован с этим объектом PooledConnection в качестве слушателя
См. также:
  • addConnectionEventListener(javax.sql.ConnectionEventListener)

addStatementEventListener

void addStatementEventListener(StatementEventListener listener)
Регистрирует StatementEventListener с этим объектом PooledConnection. Компоненты, которые хотят получать уведомления о закрытии PreparedStatement, созданных соединением, или об обнаружении их недействительности, могут использовать этот метод для регистрации StatementEventListener с этим объектом PooledConnection.
Параметры:
listener - компонент, реализующий интерфейс StatementEventListener, который должен быть зарегистрирован с этим объектом PooledConnection
С момента:
1.6

removeStatementEventListener

void removeStatementEventListener(StatementEventListener listener)
Удаляет указанный StatementEventListener из списка компонентов, которые будут уведомлены, когда драйвер обнаружит, что PreparedStatement был закрыт или является недействительным.
Параметры:
listener - компонент, реализующий интерфейс StatementEventListener, который был ранее зарегистрирован с этим объектом PooledConnection
С момента:
1.6

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.sql/javax/sql/PooledConnection.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API