Соединение было закрыто и удалено сообщение с HikariCP после определенного времени простоя

В моем загрузочном приложении Spring используется HikariCP. Я получаю следующее сообщение об ошибке «соединение закрыто, и соединение разорвано»

      com.zaxxer.hikari.pool.PoolBase: HikariPool-1 - Failed to validate connection org.postgresql.jdbc.PgConnection@1610c743 (This connection has been closed.). Possibly consider using a shorter maxLifetime value.
[nnection closer] com.zaxxer.hikari.pool.PoolBase: HikariPool-1 - Closing connection org.postgresql.jdbc.PgConnection@1610c743: (connection was evicted)

Я получил это сообщение, когда оставил свое приложение включенным на ночь и попытался получить доступ к API из приложения примерно через 10 часов простоя. Первый звонок после 10 часов простоя потребовал 11 секунд для ответа и дал мне вышеуказанное сообщение в журналах. Последующие звонки после этого заняли время ответа около 2 секунд, и я не видел этого конкретного сообщения. Кто-нибудь знает, почему я получил это конкретное сообщение и почему потребовалось так много времени для первого звонка после простоя. Мое приложение развернуто в Azure Spring Cloud. Ниже приведены версии библиотеки.

      HikariCP version: 4.0.3
Spring boot:  2.5.5
PostgresSql:  42.2.23

Стоимость собственности Хикари, которую я изменил. Я изменил это, потому что значение по умолчанию 30 минут давало мне тайм-аут соединения и было сгенерировано исключение. После изменения свойства maxLifetime теперь я не получаю исключения тайм-аута соединения

      hikari:
      maxLifetime: 300000

1 ответ

Если приложение бездействует, значит, у вас есть утечка соединения. Таким образом, эти сообщения будут отображаться в журналах.

Добавьте ниже свойства для проверки соединения:

      spring.datasource.testWhileIdle=true
spring.datasource.test-on-borrow=true

Чтобы дополнительно проверить, есть ли утечка, добавьте ниже свойства и проверьте, как проходит ваше соединение с пулом:

      spring.datasource.hikari.leakDetectionThreshold=2000
logging.level.com.zaxxer.hikari=DEBUG
Другие вопросы по тегам