Table of Contents
ConnectionPoolDataSource
DataSource
JDBC 2 introduced standard connection pooling features in an add-on API known as the JDBC 2.0 Optional Package (also known as the JDBC 2.0 Standard Extension). These features have since been included in the core JDBC 3 API.
The JDBC API provides a client and a server interface for connection pooling.
The client interface is javax.sql.DataSource
, which is what application code
will typically use to acquire a pooled database connection. The server interface
is javax.sql.ConnectionPoolDataSource
, which is how most application servers
will interface with the PostgreSQL™ JDBC driver.
In an application server environment, the application server configuration will
typically refer to the PostgreSQL™ ConnectionPoolDataSource
implementation,
while the application component code will typically acquire a DataSource
implementation provided by the application server (not by PostgreSQL™).
For an environment without an application server, PostgreSQL™ provides two
implementations of DataSource
which an application can use directly. One
implementation performs connection pooling, while the other simply provides
access to database connections through the DataSource
interface without any
pooling. Again, these implementations should not be used in an application server
environment unless the application server does not support the ConnectionPoolDataSource
interface.