package org.safehaus.penrose.jdbc;
import org.apache.commons.dbcp.PoolingDataSource;
import org.apache.commons.pool.ObjectPool;
import javax.sql.DataSource;
/**
* @author Endi Sukma Dewata
*/
public class JDBCPoolableClient extends JDBCClient {
public DataSource ds;
public JDBCPoolableClient(
ObjectPool connectionPool,
JDBCConnectionFactory connectionFactory
) throws Exception {
super(connectionFactory);
ds = new PoolingDataSource(connectionPool);
// unsupported
// ds.setLoginTimeout(loginTimeout);
}
public synchronized void connect() throws Exception {
if (connection == null || connection.isClosed()) {
log.debug("Getting JDBC connection from connection pool.");
connection = ds.getConnection();
}
}
public synchronized void close() throws Exception {
log.debug("Returning JDBC connection to connection pool.");
super.close();
}
}