Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package it.sodomaco.turcom;
- import java.sql.Connection;
- import java.sql.SQLException;
- import java.util.Properties;
- import javax.sql.DataSource;
- import org.apache.commons.dbcp.ConnectionFactory;
- import org.apache.commons.dbcp.DriverManagerConnectionFactory;
- import org.apache.commons.dbcp.PoolableConnectionFactory;
- import org.apache.commons.dbcp.PoolingDataSource;
- import org.apache.commons.pool.impl.GenericObjectPool;
- import it.sodomaco.generic.ConnectionProvider;
- import it.sodomaco.generic.Props;
- public class MyConnectionProvider implements ConnectionProvider {
- DataSource myDS=null;
- ConnectionFactory connectionFactory =null;
- PoolableConnectionFactory poolableConnectionFactory = null;
- GenericObjectPool connectionPool=null;
- public static final String validationQuery="SELECT 1";
- public static final int validationQueryTimeout=3; //sec
- public MyConnectionProvider(AppConf appConf) {
- Properties prop=new Properties();
- prop.setProperty("username", "mab");
- prop.setProperty("user", "mab");
- prop.setProperty("password", "pass");
- // ObjectPool connectionPool = new GenericObjectPool(null);
- // ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(connectURI,null);
- // PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,connectionPool,null,null,false,true);
- // PoolingDataSource dataSource = new PoolingDataSource(connectionPool);
- connectionPool = new GenericObjectPool(null);
- connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://127.0.0.1:4002/mab",prop);
- poolableConnectionFactory = new MyPoolableConnectionFactory(appConf,connectionFactory,connectionPool);
- poolableConnectionFactory.setValidationQuery(validationQuery);
- poolableConnectionFactory.setValidationQueryTimeout(validationQueryTimeout);
- connectionPool.setMaxWait(20L*1000L);
- connectionPool.setTimeBetweenEvictionRunsMillis(120L*1000L);
- connectionPool.setTestWhileIdle(true);
- connectionPool.setMinIdle(2);
- myDS = new PoolingDataSource(connectionPool);
- // connectionFactory = new DriverManagerConnectionFactory("jdbc:mysql://127.0.0.1:4002/mab",prop);
- // poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory,new GenericObjectPool(),null,null,false,false);
- // poolableConnectionFactory.setValidationQuery(validationQuery);
- // poolableConnectionFactory.setValidationQueryTimeout(validationQueryTimeout);
- //
- // connectionPool = new GenericObjectPool(poolableConnectionFactory);
- //
- // poolableConnectionFactory.setPool(connectionPool);
- //
- // connectionPool.setMaxWait(20L*1000L);
- // connectionPool.setTimeBetweenEvictionRunsMillis(120L*1000L);
- // connectionPool.setTestWhileIdle(true);
- // connectionPool.setMinIdle(2);
- //
- // myDS = new PoolingDataSource(connectionPool);
- }
- public Connection getConnection() throws SQLException {
- return myDS.getConnection();
- }
- Props infoProps=new Props();
- public Props getInfoProps() {
- infoProps.setInteger("connectionPool.maxActive", connectionPool.getMaxActive());
- infoProps.setInteger("connectionPool.maxIdle", connectionPool.getMaxIdle());
- infoProps.setInteger("connectionPool.minIdle", connectionPool.getMinIdle());
- infoProps.setInteger("connectionPool.numActive", connectionPool.getNumActive());
- infoProps.setInteger("connectionPool.numIdle", connectionPool.getNumIdle());
- infoProps.setBoolean("connectionPool.testOnBorrow", connectionPool.getTestOnBorrow());
- infoProps.setBoolean("connectionPool.testOnReturn", connectionPool.getTestOnReturn());
- infoProps.setBoolean("connectionPool.testWhileIdle", connectionPool.getTestWhileIdle());
- infoProps.setLong("connectionPool.maxWait", connectionPool.getMaxWait());
- infoProps.setLong("connectionPool.timeBetweenEvictionRunsMillis", connectionPool.getTimeBetweenEvictionRunsMillis());
- byte weab=connectionPool.getWhenExhaustedAction();
- String weas;
- switch (weab) {
- case GenericObjectPool.WHEN_EXHAUSTED_BLOCK:
- weas="WHEN_EXHAUSTED_BLOCK";
- break;
- case GenericObjectPool.WHEN_EXHAUSTED_FAIL:
- weas="WHEN_EXHAUSTED_FAIL";
- break;
- case GenericObjectPool.WHEN_EXHAUSTED_GROW:
- weas="WHEN_EXHAUSTED_GROW";
- break;
- default:
- weas="unknown";
- break;
- }
- infoProps.setString("connectionPool.whenExhaustedAction", weas);
- infoProps.setString("poolableConnectionFactory.validationQuery", validationQuery);
- infoProps.setInteger("poolableConnectionFactory.validationQueryTimeout", validationQueryTimeout);
- return infoProps;
- }
- }
Add Comment
Please, Sign In to add comment