Проверка работоспособности пружинного привода - как убедиться, что есть активное соединение с базой данных

Я хочу вернуть статус ok с кодом 200, только если мое приложение запущено и есть активное соединение с базой данных. желаемое поведение проверки работоспособности:

  • Если приложение работает, но БД не работает - ВНИЗ
  • если приложение не работает, а база данных работает - ВНИЗ
  • Если приложение запущено и есть активное соединение с базой данных - ВВЕРХ

Итак, я создал собственный класс проверки работоспособности, но я не знаю, как проверить, активно ли соединение с базой данных и действительно ли оно весенним способом.

@Component
public class HealthCheck implements HealthIndicator {

  @Override
  public Health health() {
      int errorCode = check();
      if (errorCode != 0) {
          return Health.down()
          .withDetail("Error Code", errorCode).build();
    }
    return Health.up().build();
 }

 public int check() {
    // Check if there is an active connection to the database
    return 0;
 }
}

Почему вы не можете использовать встроенный DataSourceHealthIndicator, который будет автоматически настроен, если в вашем приложении есть DataSource? Он выполнит запрос, соответствующий используемой вами базе данных, чтобы проверить ее доступность.

Andy Wilkinson 30.04.2018 15:06

Я не знал, что есть встроенный индикатор, который проверяет, доступен ли источник данных, после того, как я прочитал о DataSourceHealthIndicator, нет смысла реализовывать мою собственную проверку источника данных, спасибо !!

Ron Badur 30.04.2018 15:17
management.health.db.enabled=true
Anton Novopashin 30.04.2018 15:43
2
3
1 366
0

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