Chapter 11. Connection Pools and Data Sources
Table of Contents
- Overview
- 
      
       Application Servers:
       ConnectionPoolDataSource
- 
      
       Applications:
       DataSource
- Tomcat setup
- Data Sources and JNDI
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.
Overview
     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.