Использование пулов подключений
Драйвер Microsoft JDBC для SQL Server обеспечивает поддержку пула подключений Java Platform, выпуск Enterprise (Java EE). В драйвере JDBC реализованы необходимые интерфейсы JDBC 3.0, что позволяет драйверу участвовать в любой реализации пулов соединений, предоставляемой поставщиками ПО промежуточного слоя и совместимой с JDBC 3.0. ПО промежуточного слоя, например серверы приложений Java EE, часто предоставляет соответствующие стандарту средства работы с пулами соединений. Драйвер JDBC сможет участвовать в соединениях из пула в таких средах.
Примечание.
Драйвер JDBC поддерживает пулы соединений Java EE, однако не предоставляет собственную реализацию работы с пулом. Драйверу необходимо, чтобы управление соединениями осуществлялось серверами приложений Java сторонних разработчиков.
Замечания
Далее представлены классы для реализации пулов соединений.
Класс | Реализации | Description |
---|---|---|
com.microsoft.sqlserver.jdbc. SQLServerXADataSource | javax.sql.ConnectionPoolDataSource и javax.sql.XADataSource | Рекомендуется использовать класс SQLServerXADataSource для всех задач сервера Java EE, так как в нем реализованы все интерфейсы пулов JDBC 3.0 и интерфейсы XA. |
com.microsoft.sqlserver.jdbc. SQLServerConnectionPoolDataSource | javax.sql.ConnectionPoolDataSource | Этот класс представляет фабрику соединений, которая позволяет серверу приложений Java EE заполнять пул соединений физическими соединениями. Если конфигурация поставщика Java EE подразумевает необходимость класса, реализующего javax.sql.ConnectionPoolDataSource, укажите имя класса в свойстве SQLServerConnectionPoolDataSource. Вместо этого рекомендуется использовать класс SQLServerXADataSource, так как в нем реализуются и интерфейсы пулов, и интерфейсы XA, а его работоспособность проверена в большем числе конфигураций сервера Java EE. |
Чтобы получить максимальную выгоду от использования пулов, в коде приложений JDBC всегда следует явно закрывать соединения. Если приложение явно закрывает соединение, реализация пулов может немедленно повторно использовать это соединение. Если соединение не закрыто, другие приложения не могут его использовать. Приложение может использовать конструкциюfinally
, чтобы убедиться в том, что соединения закрываются даже в случае, если происходит исключение.
Примечание.
Не все сторонние библиотеки для пулов подключений Java реализуют приведенные выше API JDBC для создания пула подключений. Эти библиотеки должны реализовывать собственные методы для возврата подключений к их исходным состояниям при возвращении в пул подключений.