亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Hikari連接池啟動后創建兩個連接

Hikari連接池啟動后創建兩個連接

滄海一幻覺 2023-08-16 15:47:21
我使用 Hikary 連接池并進行以下設置:  HikariDataSource dataSource = new HikariDataSource();         dataSource.setMinimumIdle(0);         dataSource.setMaximumPoolSize(Integer.MAX_VALUE);         dataSource.setJdbcUrl(jdbcConnectionString);         dataSource.setConnectionTestQuery("select 1");         dataSource.setIdleTimeout(TimeUnit.SECONDS.toMillis(60));     dataSource.getConnection();getConnection() hikari 嘗試獲取 2 個到實例的連接,但僅將一個連接放入連接池中。我該如何修復它?光版本是3.4.0
查看完整描述

2 回答

?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

我找到了答案。Hikari 在 checkFailFast 方法中創建第一個連接。當找到如何禁用此方法時,我更新此評論。checkFailFast如果初始化失敗超時<0,則不起作用。它幫助到我



查看完整回答
反對 回復 2023-08-16
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

getConnection() hikari 嘗試獲取 2 個到實例的連接,但僅將一個連接放入連接池中。我該如何修復它?

這種行為沒有什么可修復的。它簡單的意思是,打開了兩個連接,其中一個關閉了。

第二個連接被關閉的原因是您設置的setMinimumIdle(0),即池中沒有維護任何空閑連接,并且所有空閑連接都被關閉。

如果您想查看池中的兩個連接,只需設置即可setMinimumIdle(1)。調用后,DataSource.getConnection()池中將有兩個連接 - 一個是您的,另一個是空閑的。

如果您根本不想打開第二個連接,請設置

    config.setMinimumIdle( 1 );
    config.setMaximumPoolSize( 1 );

但三思而后行,為什么要用只有一個連接的連接池呢?

無論如何,您可以稍后在池運行時增加這兩個參數。

 HikariConfigMXBean bn = DataSource.ds.getHikariConfigMXBean()
 bn.setMaximumPoolSize(10)
 bn.setMinimumIdle(10)

這將(不是立即)打開 9 個與數據庫的附加連接。

請注意,雖然設置 MaximumPoolSize == MinimumIdle池中的連接數保持穩定,但沒有連接打開或關閉,這可能是您想要觀察的事情。

測試Hicari 3.4.0Oracle 12.2


查看完整回答
反對 回復 2023-08-16
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號