數據庫連接設置

出現異常”The last packet sent successfully to the server was 0 milliseconds ago.“的大部分原因是由於數據庫回收了連接,而系統的緩衝池不知道,繼續使用被回收的連接所致的。

作者:小牛長成記
鏈接:https://www.jianshu.com/p/5b2d42206145
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
#SQL查詢,用來驗證從連接池取出的連接
dbcp.validationQuery=SELECT 1
#指明連接是否被空閒連接回收器(如果有)進行檢驗,如果檢測失敗,則連接將被從池中去除
dbcp.testWhileIdle=true
#在空閒連接回收器線程運行期間休眠的時間值,以毫秒爲單位,一般比minEvictableIdleTimeMillis小
dbcp.timeBetweenEvictionRunsMillis=300000
#在每次空閒連接回收器線程(如果有)運行時檢查的連接數量,最好和maxActive一致
dbcp.numTestsPerEvictionRun=50
#連接池中連接,在時間段內一直空閒,被逐出連接池的時間(10006060),以毫秒爲單位
dbcp.minEvictableIdleTimeMillis=3600000
local.datasource.driverClassName=com.kingbase8.Driver

初始化大小

local.datasource.initialSize=5

最小連接數

local.datasource.minIdle=5

最大連接數1

local.datasource.maxActive=20

連接等待超時時間

local.datasource.maxWait=60000

配置隔多久進行一次檢測(檢測可以關閉的空閒連接),檢測需要關閉的空閒連接,單位是毫秒

local.datasource.timeBetweenEvictionRunsMillis=60000

配置連接在池中的最小生存時間

local.datasource.minEvictableIdleTimeMillis=300000
datasource.setDbType(this.dbType);
datasource.setUrl(this.dbUrl);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);

    //configuration
    datasource.setInitialSize(initialSize);
    datasource.setValidationQuery("select 1");
    datasource.setTestWhileIdle(true);
    datasource.setNumTestsPerEvictionRun(maxActive);
    datasource.setMinIdle(minIdle);
    datasource.setMaxActive(maxActive);
    datasource.setMaxWait(maxWait);
    datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
    datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章