我的oracle連接池,關閉tomcat的時候有一個嚴重錯誤
<!-- druid資料庫資料源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="https://bbs.csdn.net/topics/${master.jdbc.driverClassName}" />
<property name="url" value="https://bbs.csdn.net/topics/${master.jdbc.url}" />
<property name="username" value="https://bbs.csdn.net/topics/${master.jdbc.username}" />
<property name="password" value="https://bbs.csdn.net/topics/${master.jdbc.password}" />
<!-- 初始化連接大小 -->
<property name="initialSize" value="https://bbs.csdn.net/topics/2" />
<!-- 連接池最大使用連接數量 -->
<property name="maxActive" value="https://bbs.csdn.net/topics/10" />
<!-- 連接池最小空閑 -->
<property name="minIdle" value="https://bbs.csdn.net/topics/3" />
<!-- 獲取連接最大等待時間 -->
<!--maxWait: 連接池獲取連接超時等待時間以毫秒為單位 6000毫秒/1000等于6秒 -->
<property name="maxWait" value="https://bbs.csdn.net/topics/6000" />
<!-- 這里配置提交方式,默認就是TRUE,如果自動提交就可以不用配置 -->
<property name="defaultAutoCommit" value="https://bbs.csdn.net/topics/true" />
<!-- poolPreparedStatements: 是否快取preparedStatement,也就是PSCache。PSCache對支持游標的資料庫性能提升巨大,比如說oracle。在mysql下建議關閉。 -->
<property name="poolPreparedStatements" value="https://bbs.csdn.net/topics/true" />
<property name="maxPoolPreparedStatementPerConnectionSize"
value="https://bbs.csdn.net/topics/33" />
<!-- validationQuery SQL查詢,用來驗證從連接池取出的連接,在將連接回傳給呼叫者之前.如果指定, 則查詢必須是一個SQL
SELECT并且必須回傳至少一行記錄 -->
<property name="validationQuery" value="https://bbs.csdn.net/topics/SELECT 1 FROM DUAL" />
<!-- testOnBorrow 默認 true 指明是否在從池中取出連接前進行檢驗,如果檢驗失敗, 則從池中去除連接并嘗試取出另一個. 注意:
設定為true后如果要生效,validationQuery引數必須設定為非空字串.這里建議配置為TRUE,防止取到的連接不可用 -->
<property name="testOnBorrow" value="https://bbs.csdn.net/topics/true" />
<!-- testOnReturn false 指明是否在歸還到池中前進行檢驗 -->
<property name="testOnReturn" value="https://bbs.csdn.net/topics/true" />
<!-- testWhileIdle false 指明連接是否被空閑連接回收器(如果有)進行檢驗.如果檢測失敗,則連接將被從池中去除. 建議配置為true,
不影響性能,并且保證安全性。 建議配置為true,不影響性能,并且保證安全性。 申請連接的時候檢測,如果空閑時間大于 timeBetweenEvictionRunsMillis,
執行validationQuery檢測連接是否有效。 -->
<property name="testWhileIdle" value="https://bbs.csdn.net/topics/true" />
<!-- 打開后,增強timeBetweenEvictionRunsMillis的周期性連接檢查,minIdle內的空閑連接,每次檢查強制驗證連接有效性.
參考:https://github.com/alibaba/druid/wiki/KeepAlive_cn -->
<property name="keepAlive" value="https://bbs.csdn.net/topics/true" />
<!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒value="https://bbs.csdn.net/topics/30000" -->
<property name="timeBetweenEvictionRunsMillis" value="https://bbs.csdn.net/topics/300000" />
<!-- 配置一個連接在池中最小生存的時間,單位是毫秒 :Destory執行緒中如果檢測到當前連接的最后活躍時間和當前時間的差值大于 minEvictableIdleTimeMillis,則關閉當前連接。 -->
<property name="minEvictableIdleTimeMillis" value="https://bbs.csdn.net/topics/60000" />
<!-- 打開removeAbandoned功能 -->
<!-- 連接泄露檢查,打開removeAbandoned功能 , 連接從連接池借出后,長時間不歸還,將觸發強制回連接。回收周期隨timeBetweenEvictionRunsMillis進行,如果連接為從連接池借出狀態,并且未執行任何sql,并且從借出時間起已超過removeAbandonedTimeout時間,則強制歸還連接到連接池中。 -->
<property name="removeAbandoned" value="https://bbs.csdn.net/topics/true" />
<!-- 600秒,也就是10分鐘,必須做完業務,否則可能會被關閉連接,目的是防止別人忘記關閉! -->
<!-- 通過datasource.getConnontion() 取得的連接必須在removeAbandonedTimeout這么多秒內呼叫close(),要不我就弄死你.(就是conn不能超過指定的租期)
單位是秒 -->
<property name="removeAbandonedTimeout" value="https://bbs.csdn.net/topics/600" />
<!-- 關閉abanded連接時輸出錯誤日志 -->
<property name="logAbandoned" value="https://bbs.csdn.net/topics/true" />
<!-- 監控資料庫 -->
<!-- <property name="filters" value="https://bbs.csdn.net/topics/stat" /> -->
<property name="filters" value="https://bbs.csdn.net/topics/mergeStat" />
</bean>
在tomcat關閉的時候,提示:
嚴重: The web application [/Dzxd] appears to have started a thread named [OracleTimeoutPollingThread] but has failed to stop it. This is very likely to create a memory leak.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/31085.html
標籤:Java SE
上一篇:fileItem.write
