com.foundationdb.sql.jdbc.ds

## Class PGPoolingDataSource

- java.lang.Object
- - com.foundationdb.sql.jdbc.ds.common.BaseDataSource
  - - com.foundationdb.sql.jdbc.ds.jdbc23.AbstractJdbc23PoolingDataSource
    - - com.foundationdb.sql.jdbc.ds.jdbc4.AbstractJdbc4PoolingDataSource
      - - com.foundationdb.sql.jdbc.ds.PGPoolingDataSource

All Implemented Interfaces:
  java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.DataSource

    public class PGPoolingDataSource
    extends com.foundationdb.sql.jdbc.ds.jdbc4.AbstractJdbc4PoolingDataSource
    implements javax.sql.DataSource

DataSource which uses connection pooling. Don't use this if your server/middleware vendor provides a connection pooling implementation which interfaces with the PostgreSQL ConnectionPoolDataSource implementation! This class is provided as a convenience, but the JDBC Driver is really not supposed to handle the connection pooling algorithm. Instead, the server or middleware product is supposed to handle the mechanics of connection pooling, and use the PostgreSQL implementation of ConnectionPoolDataSource to provide the connections to pool.

If you're sure you want to use this, then you must set the properties dataSourceName, databaseName, user, and password (if required for the user). The settings for serverName, portNumber, initialConnections, and maxConnections are optional. Note that only connections for the default user will be pooled! Connections for other users will be normal non-pooled connections, and will not count against the maximum pool size limit.

If you put this DataSource in JNDI, and access it from different JVMs (or otherwise load this class from different ClassLoaders), you'll end up with one pool per ClassLoader or VM. This is another area where a server-specific implementation may provide advanced features, such as using a single pool across all VMs in a cluster.

This implementation supports JDK 1.3 and higher.

Author:
  Aaron Mulder (ammulder@chariotsolutions.com)

### Field Summary

### Fields inherited from class com.foundationdb.sql.jdbc.ds.jdbc23.AbstractJdbc23PoolingDataSource

`dataSourceName, dataSources`

### Constructor Summary

Constructors
Constructor and Description
`PGPoolingDataSource()`

### Method Summary

Methods
`protected void` `addDataSource(java.lang.String dataSourceName)`

### Methods inherited from class com.foundationdb.sql.jdbc.ds.jdbc4.AbstractJdbc4PoolingDataSource

`getParentLogger, isWrapperFor, unwrap`

### Methods inherited from class com.foundationdb.sql.jdbc.ds.jdbc23.AbstractJdbc23PoolingDataSource

`close, createConnectionPool, getConnection, getConnection, getDataSource, getDataSourceName, getDescription, getInitialConnections, getMaxConnections, getReference, initialize, isInitialized, removeStoredDataSource, setDatabaseName, setDataSourceName, setInitialConnections, setMaxConnections, setPassword, setPortNumber, setServerName, setUser`

### Methods inherited from class com.foundationdb.sql.jdbc.ds.common.BaseDataSource

`createReference, getApplicationName, getBinaryTransfer, getBinaryTransferDisable, getBinaryTransferEnable, getCompatible, getDatabaseName, getLoginTimeout, getLogLevel, getLogWriter, getPassword, getPortNumber, getPrepareThreshold, getProtocol, getProtocolVersion, getReceiveBufferSize, getSendBufferSize, getServerName, getSocketTimeout, getSsl, getSslfactory, getStringType, getTcpKeepAlive, getUnknownLength, getUrl, getUser, initializeFrom, readBaseObject, setApplicationName, setBinaryTransfer, setBinaryTransferDisable, setBinaryTransferEnable, setCompatible, setLoginTimeout, setLogLevel, setLogWriter, setPrepareThreshold, setProtocol, setProtocolVersion, setReceiveBufferSize, setSendBufferSize, setSocketTimeout, setSsl, setSslfactory, setStringType, setTcpKeepAlive, setUnknownLength, setUrl, writeBaseObject`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface javax.sql.DataSource

`getConnection, getConnection`

### Methods inherited from interface javax.sql.CommonDataSource

`getLoginTimeout, getLogWriter, getParentLogger, setLoginTimeout, setLogWriter`

### Methods inherited from interface java.sql.Wrapper

`isWrapperFor, unwrap`

### Constructor Detail

#### PGPoolingDataSource

    public PGPoolingDataSource()

### Method Detail

#### addDataSource

    protected void addDataSource(java.lang.String dataSourceName)

Specified by:
  `addDataSource` in class `com.foundationdb.sql.jdbc.ds.jdbc23.AbstractJdbc23PoolingDataSource`