Источник данных Quarkus AS400 не использует все доступные подключения

В Quarkus мы настроили источник данных по умолчанию для подключения к as400:

quarkus.datasource.driver=com.ibm.as400.access.AS400JDBCDriver
quarkus.datasource.url=jdbc:as400://...
quarkus.datasource.username=xxx
quarkus.datasource.password=xxx
quarkus.datasource.metrics.enabled=true
quarkus.datasource.jdbc.enable-metrics=true
quarkus.datasource.jdbc.leak-detection-interval=10s
quarkus.datasource.jdbc.validation-query-sql=select 1 from sysibm.sysdummy1
quarkus.datasource.max-size=15
quarkus.datasource.min-size=2
quarkus.datasource.initial-size=5
quarkus.datasource.jdbc.pooling-enabled=true

Водитель

<dependency>
  <groupId>net.sf.jt400</groupId>
  <artifactId>jt400</artifactId>
  <version>10.3</version>
</dependency>

Это работает, но иногда соединение будет создано новым, даже если у нас есть доступные соединения в пуле. Когда мы достигаем 15 доступных соединений (максимальный размер пула), мы получаем ошибку, потому что agroal не может получить соединение:

Caused by: java.sql.SQLException: Sorry, acquisition timeout!
at io.agroal.pool.ConnectionPool.handlerFromSharedCache(ConnectionPool.java:244)
at io.agroal.pool.ConnectionPool.getConnection(ConnectionPool.java:173)
at io.agroal.pool.DataSource.getConnection(DataSource.java:66)
at org.jdbi.v3.core.Jdbi.open(Jdbi.java:301)
... 80 more

Утечки соединения не обнаружено, соединения присутствуют и доступны, проблема не возникает в других источниках данных, они используют другие драйверы (mysql), и мы проверили, все ли правильно закрыто

Jdk 11 на сервере windows, quarkus 1.5.0.Final и 1.4.2.Final

0 ответов

Другие вопросы по тегам