2 回答

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
我找到了答案。Hikari 在 checkFailFast 方法中創(chuàng)建第一個(gè)連接。當(dāng)找到如何禁用此方法時(shí),我更新此評(píng)論。checkFailFast
如果初始化失敗超時(shí)<0,則不起作用。它幫助到我

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
getConnection() hikari 嘗試獲取 2 個(gè)到實(shí)例的連接,但僅將一個(gè)連接放入連接池中。我該如何修復(fù)它?
這種行為沒有什么可修復(fù)的。它簡(jiǎn)單的意思是,打開了兩個(gè)連接,其中一個(gè)關(guān)閉了。
第二個(gè)連接被關(guān)閉的原因是您設(shè)置的setMinimumIdle(0)
,即池中沒有維護(hù)任何空閑連接,并且所有空閑連接都被關(guān)閉。
如果您想查看池中的兩個(gè)連接,只需設(shè)置即可setMinimumIdle(1)
。調(diào)用后,DataSource.getConnection()
池中將有兩個(gè)連接 - 一個(gè)是您的,另一個(gè)是空閑的。
如果您根本不想打開第二個(gè)連接,請(qǐng)?jiān)O(shè)置
config.setMinimumIdle( 1 ); config.setMaximumPoolSize( 1 );
但三思而后行,為什么要用只有一個(gè)連接的連接池呢?
無論如何,您可以稍后在池運(yùn)行時(shí)增加這兩個(gè)參數(shù)。
HikariConfigMXBean bn = DataSource.ds.getHikariConfigMXBean() bn.setMaximumPoolSize(10) bn.setMinimumIdle(10)
這將(不是立即)打開 9 個(gè)與數(shù)據(jù)庫(kù)的附加連接。
請(qǐng)注意,雖然設(shè)置 MaximumPoolSize == MinimumIdle
池中的連接數(shù)保持穩(wěn)定,但沒有連接打開或關(guān)閉,這可能是您想要觀察的事情。
測(cè)試Hicari 3.4.0
與Oracle 12.2
添加回答
舉報(bào)