Spec-Zone.ru › OpenJDK 25

Интерфейс 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. При использовании пула Statement менеджер пула получает уведомление, поскольку он зарегистрировал себя в качестве объекта 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(ConnectionEventListener)

removeConnectionEventListener

void removeConnectionEventListener(ConnectionEventListener listener)
Удаляет указанный обработчик событий из списка компонентов, которые будут получать уведомления о возникновении событий для этого объекта PooledConnection.
Параметры:
listener — компонент, обычно менеджер пула соединений, реализовавший интерфейс ConnectionEventListener и зарегистрированный в качестве обработчика для этого объекта PooledConnection
См. также:
  • addConnectionEventListener(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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.sql/javax/sql/PooledConnection.html

Spec-Zone.ru

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