Как сделать пул соединений отказоустойчивым в Quarkus?

Я работаю над приложением Quarkus (2.16.5) с драйвером MSSqlserver и Jtds .

К сожалению, хотя я настроил свойства запроса проверки и фоновой проверки , я все еще получаю соединения в недопустимом состоянии, когда сеть отключается и восстанавливается через несколько мгновений.

Чтобы повысить надежность, есть способ (конфигурация) запретить приложению Quarkus использовать недопустимые соединения и удалить их из пула?

Ошибка

      Caused by: java.sql.SQLException: Invalid state, the Connection object is closed.
    at net.sourceforge.jtds.jdbc.JtdsConnection.checkOpen(JtdsConnection.java:1744)
    at net.sourceforge.jtds.jdbc.JtdsConnection.prepareStatement(JtdsConnection.java:2448)
    at io.agroal.pool.wrapper.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:658)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:149)
    at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:176)

Конфигурация источника данных:

      quarkus.datasource.jdbc.min-size=5
quarkus.datasource.jdbc.max-size=20
quarkus.datasource.jdbc.initial-size=5
quarkus.datasource.jdbc.acquisition-timeout=10
quarkus.datasource.jdbc.background-validation-interval=5
quarkus.datasource.jdbc.validation-query-sql=SELECT 1
quarkus.transaction-manager.default-transaction-timeout=600

quarkus.datasource.db-kind=other 
quarkus.datasource.username=sa
quarkus.datasource.password=123456
quarkus.datasource.jdbc.url=jdbc:jtds:sqlserver://sqlserver-local/MYDB;
quarkus.datasource.jdbc.driver=net.sourceforge.jtds.jdbc.Driver
quarkus.hibernate-orm.dialect=org.hibernate.dialect.SQLServerDialect

Зависимости POM

      <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-reactive-jsonb</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-arc</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-reactive</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-elytron-security-ldap</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-hibernate-orm</artifactId>
        </dependency>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-narayana-jta</artifactId>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.jtds</groupId>
            <artifactId>jtds</artifactId>
            <version>1.3.1</version>
        </dependency>

0 ответов

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