org.postgresql.ds.PGConnectionPoolDataSource Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of postgresql Show documentation
Show all versions of postgresql Show documentation
PostgreSQL JDBC Driver JDBC4
/*-------------------------------------------------------------------------
*
* Copyright (c) 2004-2014, PostgreSQL Global Development Group
*
*
*-------------------------------------------------------------------------
*/
package org.postgresql.ds;
import org.postgresql.ds.common.BaseDataSource;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.sql.SQLException;
import javax.sql.ConnectionPoolDataSource;
import javax.sql.PooledConnection;
/**
* 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.
*
*
* 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.
*
*
*
* This implementation supports JDK 1.3 and higher.
*
*
* @author Aaron Mulder ([email protected])
*/
public class PGConnectionPoolDataSource extends BaseDataSource
implements ConnectionPoolDataSource, Serializable {
private boolean defaultAutoCommit = true;
/**
* 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 PGPooledConnection(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 PGPooledConnection(getConnection(user, password), defaultAutoCommit);
}
/**
* Gets whether connections supplied by this pool will have autoCommit turned on by default. The
* default value is false, so that autoCommit will be turned off by default.
*
* @return true if connections supplied by this pool will have autoCommit
*/
public boolean isDefaultAutoCommit() {
return defaultAutoCommit;
}
/**
* Sets whether connections supplied by this pool will have autoCommit turned on by default. The
* default value is false, so that autoCommit will be turned off by default.
*
* @param defaultAutoCommit whether connections supplied by this pool will have autoCommit
*/
public void setDefaultAutoCommit(boolean defaultAutoCommit) {
this.defaultAutoCommit = defaultAutoCommit;
}
private void writeObject(ObjectOutputStream out) throws IOException {
writeBaseObject(out);
out.writeBoolean(defaultAutoCommit);
}
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
readBaseObject(in);
defaultAutoCommit = in.readBoolean();
}
public java.util.logging.Logger getParentLogger()
throws java.sql.SQLFeatureNotSupportedException {
throw org.postgresql.Driver.notImplemented(this.getClass(), "getParentLogger()");
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy