C3P0 配置

  1. C3P0(獨立鏈接池使用)
private static ComboPooledDataSource cpDataSource = null;;  
    
    private static WebPooledConn instance = null;  
    
    private WebPooledConn(){}
    
    static{
    	try  
        {   
    		// (1) 初始化鏈接池設置
    		cpDataSource = new ComboPooledDataSource();  
    		cpDataSource.setDriverClass(DBClassName);  
    		cpDataSource.setJdbcUrl(DBUrl);  
    		cpDataSource.setUser(DBUser);  
    		cpDataSource.setPassword(DBPassword);  
              
    		cpDataSource.setInitialPoolSize(3);  //初始鏈接數
    		cpDataSource.setMinPoolSize(0);      //最小鏈接數
    		cpDataSource.setAcquireIncrement(5); //當鏈接池中的鏈接耗盡的時候c3p0一次同時獲取的鏈接數。Default: 3
    		cpDataSource.setMaxPoolSize(20);     //最大鏈接數
    		/**
    		 * (單位:毫秒)當鏈接池用完時客戶端調用getConnection()後等待獲取新鏈接的時間,超時後將拋出 
			 * SQLException,如設爲0則無限期等待。單位毫秒。Default: 0
    		 */
    		cpDataSource.setCheckoutTimeout(1000*60);
    		cpDataSource.setMaxIdleTime(60);  //(單位:秒) 最大空閒時間,60秒內未使用則鏈接被丟棄。若爲0則永不丟棄。Default: 0
    		cpDataSource.setIdleConnectionTestPeriod(60); //(單位:秒) 每60秒檢查全部鏈接池中的空閒鏈接。Default: 0 (0:永遠不檢查)
    		cpDataSource.setAcquireRetryAttempts(30); //定義在從數據庫獲取新鏈接失敗後重復嘗試的次數。Default: 30
    		cpDataSource.setAcquireRetryDelay(1000); //(單位:毫秒) 兩次鏈接中間隔時間,單位毫秒。Default: 1000
    		cpDataSource.setAutoCommitOnClose(false); //鏈接關閉時默認將全部未提交的操做回滾。Default: false
    		/**
    		 * 獲取鏈接失敗將會引發全部等待鏈接池來獲取鏈接的線程拋出異常。可是數據源仍有效 
    		 * 保留,並在下次調用getConnection()的時候繼續嘗試獲取鏈接。若是設爲true,那麼在嘗試 
    		 * 獲取鏈接失敗後該數據源將申明已斷開並永久關閉。Default: false
    		 */
    		cpDataSource.setBreakAfterAcquireFailure(false);
        }  
        catch (Exception e)  
        {  
            e.printStackTrace();  
        }  
    }
相關文章
相關標籤/搜索