После 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.0
и Oracle 12.2