KETTLE-JDBC連接池參數介紹以及使用


JDBC連接池參數:
    jdbc.initialSize=0                  //初始化連接
    jdbc.maxActive=30               //連接池的最大數據庫連接數,設為0表示無限制
    jdbc.maxIdle=20                   //沒有人用連接的時候,最大閑置的連接個數,設置為0時,

                     表示沒有限制。

    jdbc.maxWait=1000              //超時等待時間(以毫秒為單位)
    jdbc.removeAbandoned=true          //是否自動回收超時連接
    jdbc.removeAbandonedTimeout=60       //設置被遺棄的連接的超時的時間(以秒數為單位),即當一個

                     連接被遺棄的時間超過設置的時間,則它會自動轉換成可利用

                     的連接。默認的超時時間是300秒。

 jdbc.logAbandoned = true         //是否在自動回收超時連接的時候打印連接的超時錯誤
    jdbc.validationQuery=select 1 from dual   //給出一條簡單的sql語句進行驗證
    jdbc.testOnBorrow=true          //在取出連接時進行有效驗證

 

在配置時,主要難理解的主要有:removeAbandoned 、logAbandoned、removeAbandonedTimeout、maxWait這四個參數

  1)設置了rmoveAbandoned=true,那么在getNumActive()快要到getMaxActive()的時候,系統會進行無效的Connection的回收,回收的 Connection為removeAbandonedTimeout(默認300秒)中超出設置的秒數后沒有使用的Connection;

  2)激活回收機制好像是getNumActive()=getMaxActive()-2, 有點忘了。
  3)logAbandoned=true的話,將會在回收事件后,在log中打印出回收Connection的錯誤信息,包括在哪個地方用了Connection卻忘記關閉了,在調試的時候很有用。
  4)在這里私人建議maxWait的時間不要設得太長,maxWait如果設置太長那么客戶端會等待很久才激發回收事件。

 

 

以下是我的配置的properties文件:
#連接設置
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:DBSERVER
jdbc.username=user
jdbc.password=pass
#<!-- 初始化連接 -->
dataSource.initialSize=10

#<!-- 最大空閑連接 -->
dataSource.maxIdle=20

#<!-- 最小空閑連接 -->
dataSource.minIdle=5

#最大連接數量
dataSource.maxActive=50

#是否在自動回收超時連接的時候打印連接的超時錯誤
dataSource.logAbandoned=true

#是否自動回收超時連接
dataSource.removeAbandoned=true

#超時時間(以秒數為單位)
dataSource.removeAbandonedTimeout=180

#<!-- 超時等待時間以毫秒為單位 6000毫秒/1000等於60秒 -->
dataSource.maxWait=1000


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM