Хикари 5.1.0 теряет соединения в AzureJAVA

Программисты JAVA общаются здесь
Anonymous
Хикари 5.1.0 теряет соединения в Azure

Сообщение Anonymous »

У нас есть Server.jar и клиент. Server.jar развернут на двух машинах, они связаны с Hazelcast 5.3.8. Server.jar всегда работает. Client.jar, подключенный как клиент с Hazelcast, работает только иногда на одних и тех же машинах, когда пользователь должен посмотреть, например, в базе данных. Все работает на лазуре. База данных поддерживает 300 соединений, мы дали каждому серверу 150 подключений, поэтому Хикари инициализирует их.
нам нужно такое большое количество соединений из -за многопоточного чтения; Многие расчеты выполняются параллельно, и все они нуждаются в доступе к базе данных. Проблема в том, что время от времени, кажется, теряет все соединения, обозначенные Total = 0: < /p>

Код: Выделить всё

2025-03-13 01:03:14.921 [pool-3-thread-1] ERROR - java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30069ms (total=0, active=0, idle=0, waiting=0)
< /code>
Мы сделали вчерашний класс вчера: оба Server.jars получают 120 подключений (2 x 120 = 240), оставив 60 (300 - 240 = 60) для поддержки клиента. Jars. [b] Вопрос 1 [/b]: поможет ли это? Здесь также возникает ошибка Total = 0, но через две минуты запросы базы данных работают просто хорошо: < /p>
2025-03-18 02:44:46.043 [qtp718505350-94] ERROR  - java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30004ms (total=0, active=0, idle=0, waiting=0)
Кроме того, мы обнаружили, что Azure может просто захватить случайное количество соединений с базой данных;
https://learn.microsoft.com/en-us/azure ... ors-issure? Следующее: < /p>
Инфраструктура Azure имеет возможность динамически реконфигурировать серверы, когда в службе базы данных SQL возникают тяжелые рабочие нагрузки. Это динамическое поведение может привести к тому, что ваша клиентская программа потеряет соединение с базой данных или экземпляром. Но почему это все хорошо для env2? (End Update)
Единственное различие, которое мы обнаружили, заключается в том, что в Env1 Sockettimeout установлен на 30000, чтобы Hikari восстановился быстрее, в то время как в Env2 он не установлен. /> Параметры Hikari: < /p>

Код: Выделить всё

 com.zaxxer.hikari.HikariConfig - HikariPool-1 - configuration:
com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
com.zaxxer.hikari.HikariConfig - autoCommit......................false
com.zaxxer.hikari.HikariConfig - catalog.........................none
com.zaxxer.hikari.HikariConfig - connectionInitSql...............none
com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
com.zaxxer.hikari.HikariConfig - credentials.....................com.zaxxer.hikari.util.Credentials@1d8bd0de
com.zaxxer.hikari.HikariConfig - dataSource......................SQLServerDataSource:1
com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=}
com.zaxxer.hikari.HikariConfig - driverClassName.................none
com.zaxxer.hikari.HikariConfig - exceptionOverride...............none
com.zaxxer.hikari.HikariConfig - exceptionOverrideClassName......none
com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
com.zaxxer.hikari.HikariConfig - jdbcUrl.........................none
com.zaxxer.hikari.HikariConfig - keepaliveTime...................30000
com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
com.zaxxer.hikari.HikariConfig - maxLifetime.....................300000
com.zaxxer.hikari.HikariConfig - maximumPoolSize.................1000
com.zaxxer.hikari.HikariConfig - metricRegistry..................none
com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
com.zaxxer.hikari.HikariConfig - minimumIdle.....................1000
com.zaxxer.hikari.HikariConfig - password........................
com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
com.zaxxer.hikari.HikariConfig - readOnly........................false
com.zaxxer.hikari.HikariConfig - registerMbeans..................false
com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
com.zaxxer.hikari.HikariConfig - schema..........................none
com.zaxxer.hikari.HikariConfig - threadFactory...................internal
com.zaxxer.hikari.HikariConfig - transactionIsolation............default
com.zaxxer.hikari.HikariConfig - username........................none
com.zaxxer.hikari.HikariConfig - validationTimeout...............10000
Maximumpoolsize ................. 1000 устанавливается как часть эксперимента, обычно это будет 120.

Подробнее здесь: https://stackoverflow.com/questions/795 ... thin-azure

Вернуться в «JAVA»