例如,我有一個設置:spring.datasource.maxActive=5這是否意味著在Spring啟動之后,已在池中創建了5個活動的物理連接?還是只是對象?在訪問池之后,將創建與數據庫的物理連接嗎?如果所有5個連接都忙,則連接池是否會創建新連接并將其放入池中?中間地帶在哪里?如何計算游泳池的數量?
2 回答

慕標5832272
TA貢獻1966條經驗 獲得超4個贊
每個連接池對連接的管理方式都不同。他們有不同的策略來擴展池或引發沒有可用連接的異常。
通常(但不是規則):
當Spring啟動時,沒有活動的連接。
是的,第一次訪問該池時將創建第一個物理連接。使用后,它將以空閑狀態停留在池中。
只要有空閑連接,池就會重用它們。空閑連接將重新用于新請求。
如果請求到來且沒有空閑連接且已達到最大限制,則有兩種策略:無限增長池或引發異常。拋出異常是處理這種情況的常用方法。當前由活動連接處理的請求將不受影響。
空閑連接可以在一段時間后被銷毀,以避免占用資源。
了解適當的池大小是統計信息和可用資源的問題。同樣,可以根據使用模式和服務器上的連接可用性來增加或減小最大池大小。
添加回答
舉報
0/150
提交
取消