/** * */ package com.alipay.zdal.test.ut.datasource; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import org.junit.Test; import com.alipay.zdal.common.DBType; import com.alipay.zdal.common.jdbc.sorter.MySQLExceptionSorter; import com.alipay.zdal.common.jdbc.sorter.OracleExceptionSorter; import com.alipay.zdal.datasource.LocalTxDataSourceDO; import com.alipay.zdal.datasource.ZDataSource; /** * @author Administrator * */ public class PoolMinSizeResetTests { @Test public void test() throws Exception { ZDataSource dataSource = null; try { dataSource = new ZDataSource(dataSourceDO); System.out.println("------------------Before execution ---------------------"); System.out.println(dataSource.getLocalTxDataSource().getPoolCondition()); Connection conn = null; Statement statement = null; ResultSet rs = null; try { conn = dataSource.getConnection(); System.out.println("------------------Afer get connection ---------------------"); System.out.println(dataSource.getLocalTxDataSource().getPoolCondition()); /*statement = conn.createStatement(); if (dbType.isMysql()) { rs = statement.executeQuery(MYSQL_PREFILL_SQL); } else { rs = statement.executeQuery(ORACLE_PREFILL_SQL); }*/ Thread.currentThread().sleep(12000); } catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); rs = null; } if (statement != null) { statement.close(); statement = null; } if (conn != null) { conn.close(); conn = null; } } catch (Exception e) { e.printStackTrace(); } } System.out.println("------------------After execution ---------------------"); System.out.println(dataSource.getLocalTxDataSource().getPoolCondition()); } catch (Exception e) { e.printStackTrace(); }finally{ if( null != dataSource ){ dataSource.destroy(); } } } /** mysql���ݿ�Ԥ�����ӵ�sql��� */ private static final String MYSQL_PREFILL_SQL = "select 1"; /** oracle���ݿ�Ԥ�����ӵ�sql��� */ private static final String ORACLE_PREFILL_SQL = "select sysdate from dual"; final static String name = "ds1" ; final static String jdbcUrl = "jdbc:mysql://mysql-1-2.bjl.alipay.net:3306/zds2" ; final static String userName = "mysql" ; final static String password = "-76079f94c1e11c89" ; final static int minConn = 4 ; final static int maxConn = 20 ; final static int blockingTimeoutMillis = 180 ; final static int idleTimeoutMinutes = 1 ; final static int preparedStatementCacheSize = 100 ; final static int queryTimeout = 180 ; final static int maxReadThreshold = 100 ; final static int maxWriteThreshold = 100; final static String failoverRule = "master" ; final static DBType dbType = DBType.MYSQL; final static String driverClass = "com.mysql.jdbc.Driver"; final static boolean prefill = true; static LocalTxDataSourceDO dataSourceDO ; static{ dataSourceDO = new LocalTxDataSourceDO(); dataSourceDO.setDsName("PoolMinSizeResetTests"); dataSourceDO.setConnectionURL(jdbcUrl); dataSourceDO.setUserName(userName); try { dataSourceDO.setEncPassword(password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } dataSourceDO.setMinPoolSize(minConn); dataSourceDO.setMaxPoolSize(maxConn); dataSourceDO.setDriverClass(driverClass); dataSourceDO.setBlockingTimeoutMillis(blockingTimeoutMillis); dataSourceDO.setIdleTimeoutMinutes(idleTimeoutMinutes); dataSourceDO.setPreparedStatementCacheSize(preparedStatementCacheSize); dataSourceDO.setQueryTimeout(queryTimeout); // dataSourceDO.setPrefill(isPrefill()); if (dbType.isMysql()) { dataSourceDO.setExceptionSorterClassName(MySQLExceptionSorter.class.getName()); } else if (dbType.isOracle()) { dataSourceDO.setExceptionSorterClassName(OracleExceptionSorter.class.getName()); } dataSourceDO.setPrefill(prefill); } }