一、連接池配置
<bean class="org.apache.tomcat.jdbc.pool.PoolProperties"> <property name="url" value="${jdbcUrl}"/> <!--數據庫驅動--> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <!--用戶名--> <property name="username" value="mysql"/> <!--密碼--> <property name="password" value="123456"/> <!--註冊池JMX,默認:true--> <property name="jmxEnabled" value="false"/> <!--檢查連接死活的時間間隔,單位:毫秒--> <property name="validationInterval" value="30000"/> <!--指定連接進入空閒狀態時是否經過空閒對象驅逐進程的校驗,如果校驗未通過,則該連接被連接池斷掉 值爲true,則validationQuery參數必須爲一個非空字串----> <property name="testWhileIdle" value="false"/> <!--指定連接返回到池中是時是否經過校驗 值爲true,則validationQuery參數必須爲一個非空字串----> <property name="testOnReturn" value="false"/> <!--指定連接被調用時是否經過校驗,如果校驗未通過,則該連接被連接池斷掉,並由連接池嘗試調用另一個連接 值爲true,則validationQuery參數必須爲一個非空字串--> <property name="testOnBorrow" value="true"/> <!--在連接返回給調用者前用於校驗連接是否有效的SQL語句,如果指定了SQL語句,則必須爲一個SELECT語句,且至少有一行結果--> <property name="validationQuery" value="select 1"/> <!--連接池處於活動狀態的數據庫連接的最大數目,0表示不限制,表示最大併發--> <property name="maxActive" value="1000"/> <!--初始化連接數--> <property name="initialSize" value="10"/> <!--連接池中連接用完時,新的請求的等待時間(即等待別的連接空閒),超時返回異常,毫秒--> <property name="maxWait" value="100000"/> <!--以毫秒錶示空閒對象驅逐進程由休眠狀態進入運行狀態的數值,值爲非正整時表示不運行任何空閒對象驅逐進程 運行判斷連接超時任務的時間間隔--> <property name="timeBetweenEvictionRunsMillis" value="30000"/> <!--以毫秒錶示連接被空閒對象驅逐進程驅逐前在池中保持空閒狀態的最小時間,連接的超時時間,默認爲半小時--> <property name="minEvictableIdleTimeMillis" value="30000"/> <!--連接池檢查每個空閒對象驅逐進程的對象數量 <property name="numTestPerEvictionRun" value="3"/> --> <!--連接池處於空閒狀態的數據庫連接的最小數目,低於此數值將會創建所欠缺的連接,設0無限制--> <property name="minIdle" value="10"/> <!--連接池處於空閒狀態的數據庫連接的最大數目,取非正整數表示不受限制,超過此數值時多餘的空閒連接將會被釋放--> <property name="maxIdle" value="200"/> <!--當清除無效連接時是否在日誌中記錄清除信息的標誌--> <property name="logAbandoned" value="false"/> <!--是否清除已經超過 removeAbandonedTimeout 設置的無效連接,自動回收超時連接 啓動機制:getNumActive() > getMaxActive() - 3 和 getNumIdle() < 2 假設maxActive=20,而當前18個活動連接,1個空閒連接,機制將會啓動 但是只有在活動連接沒有使用的時長超過“removeAbandonedTimeout”(默認300秒),的連接將被清除--> <property name="removeAbandoned" value="true"/> <!--以秒錶示清除無效連接的時限,自我中斷時間,單位秒--> <property name="removeAbandonedTimeout" value="60"/> <!--設置攔截器,默認爲空 ConnectionState:跟蹤自動提交,只讀目錄和事務隔離級別 StatementFinalizer:跟蹤打開的語句,並關閉連接時的返回到池中 --> <property name="jdbcInterceptors" value="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"/> </bean>