資料來源一開始配置:
jdbc.initialsize=1
jdbc.minidle=1
jdbc.maxactive=5
程式執行一段時間後,執行查詢拋如下異常:
exception=org.mybatis.spring.mybatissystemexception: nested exception is org.apache.ibatis.exceptions.persistenceexception:
### error querying database. cause: org.springframework.jdbc.cannotgetjdbcconnectionexception:could not get jdbc connection; nested exception is com.alibaba.druid.pool.getconnectiontimeoutexception: wait millis 60000, active 5, maxactive 5
### the error may exist in ...
懷疑是最大連線數不夠,講配置改為
jdbc.initialsize=1
jdbc.minidle=1
jdbc.maxactive=20
<
property
name
="removeabandoned"
value
="true"
/>
<
property
name
="removeabandonedtimeout"
value
="180"
/>
<
property
name
="logabandoned"
value
="true"
/>
拋如下異常:
紅色標註處連線未釋放,檢視**,
trycatch
(sqlexception e)
catch
(sqlexception ex)
} finally
這裡baseconn是通過druid datasource獲取的乙個pgsql 底層連線, 上面**執行完後,finally中呼叫baseconn.close()關閉了這個連線,(猜測關閉這個底層連線,druid連線池卻不知道,還認為自己擁有這個連線,但實際該連線是不可用的,這段**執行多次,就將druid連線池中所有連線都耗光了,於是便丟擲could not get jdbc connection錯誤。
將上面finally**塊改為
finally
即只呼叫druid 連線的close方法(只是釋放該連線,而不是直接關閉底層連線),問題解決。
Druid連線池入門
一 druid簡介 druid是乙個jdbc元件,它包括三部分 druid可以做什麼?1 可以監控資料庫訪問效能,druid內建提供了乙個功能強大的statfilter外掛程式,能夠詳細統計sql的執行效能,這對於線上分析資料庫訪問效能有幫助。2 替換dbcp和c3p0。druid提供了乙個高效 功...
Druid連線池配置
druid連線池,在阿里 使用過很好用的。druid集連線池,監控於一體整好復合當前專案的需要,專案是ssm結構,首先spring配置datasource,配置如下 id datasource class com.alibaba.druid.pool.druiddatasource init met...
druid連線池學習
注 filters 監控 servlet 當前sql 已執行次數 exectime 當前sql 已執行時間 execmax 當前sql 最大執行時間 txn當前執行的事務數量 error 當前sql 執行出錯的數目 update 當前sql 更新或者刪除操作中已經影響的行數 fetchrow 當前s...