mirror of
https://github.com/postgres/postgres.git
synced 2025-06-09 00:01:41 -04:00
83 lines
2.8 KiB
Java
83 lines
2.8 KiB
Java
package org.postgresql.jdbc2.optional;
|
|
|
|
import javax.sql.ConnectionPoolDataSource;
|
|
import javax.sql.PooledConnection;
|
|
import java.sql.SQLException;
|
|
import java.io.Serializable;
|
|
|
|
/**
|
|
* PostgreSQL implementation of ConnectionPoolDataSource. The app server or
|
|
* middleware vendor should provide a DataSource implementation that takes advantage
|
|
* of this ConnectionPoolDataSource. If not, you can use the PostgreSQL implementation
|
|
* known as PoolingDataSource, but that should only be used if your server or middleware
|
|
* vendor does not provide their own. Why? The server may want to reuse the same
|
|
* Connection across all EJBs requesting a Connection within the same Transaction, or
|
|
* provide other similar advanced features.
|
|
*
|
|
* <p>In any case, in order to use this ConnectionPoolDataSource, you must set the property
|
|
* databaseName. The settings for serverName, portNumber, user, and password are
|
|
* optional. Note: these properties are declared in the superclass.</p>
|
|
*
|
|
* <p>This implementation supports JDK 1.3 and higher.</p>
|
|
*
|
|
* @author Aaron Mulder (ammulder@chariotsolutions.com)
|
|
* @version $Revision: 1.2 $
|
|
*/
|
|
public class ConnectionPool extends BaseDataSource implements Serializable, ConnectionPoolDataSource
|
|
{
|
|
private boolean defaultAutoCommit = false;
|
|
|
|
/**
|
|
* Gets a description of this DataSource.
|
|
*/
|
|
public String getDescription()
|
|
{
|
|
return "ConnectionPoolDataSource from " + org.postgresql.Driver.getVersion();
|
|
}
|
|
|
|
/**
|
|
* Gets a connection which may be pooled by the app server or middleware
|
|
* implementation of DataSource.
|
|
*
|
|
* @throws java.sql.SQLException
|
|
* Occurs when the physical database connection cannot be established.
|
|
*/
|
|
public PooledConnection getPooledConnection() throws SQLException
|
|
{
|
|
return new PooledConnectionImpl(getConnection(), defaultAutoCommit);
|
|
}
|
|
|
|
/**
|
|
* Gets a connection which may be pooled by the app server or middleware
|
|
* implementation of DataSource.
|
|
*
|
|
* @throws java.sql.SQLException
|
|
* Occurs when the physical database connection cannot be established.
|
|
*/
|
|
public PooledConnection getPooledConnection(String user, String password) throws SQLException
|
|
{
|
|
return new PooledConnectionImpl(getConnection(user, password), defaultAutoCommit);
|
|
}
|
|
|
|
/**
|
|
* Gets whether connections supplied by this pool will have autoCommit
|
|
* turned on by default. The default value is <tt>false</tt>, so that
|
|
* autoCommit will be turned off by default.
|
|
*/
|
|
public boolean isDefaultAutoCommit()
|
|
{
|
|
return defaultAutoCommit;
|
|
}
|
|
|
|
/**
|
|
* Sets whether connections supplied by this pool will have autoCommit
|
|
* turned on by default. The default value is <tt>false</tt>, so that
|
|
* autoCommit will be turned off by default.
|
|
*/
|
|
public void setDefaultAutoCommit(boolean defaultAutoCommit)
|
|
{
|
|
this.defaultAutoCommit = defaultAutoCommit;
|
|
}
|
|
|
|
}
|