2015-12-23 6 views
1

Я использую спящий режим с базой данных PostgreSQL. Я использую двоичный дистрибутив PostgreSQL и инициализирую, запускаю и останавливаю базу данных вручную. Есть ли какой-либо способ в Java, hibernate, чтобы узнать, что база данных не запущена?Как проверить с помощью базы данных спящего режима или нет?

+0

Я предполагаю, что если база данных не работает, вы не сможете установить соединение с ней. Это может быть плохим подходом к проверке такой вещи. – YoungHobbit

+0

@YoungHobbit, если я хочу обрабатывать это условие в своем коде, тогда это возможно или нет, или я только показываю ошибку исключения пользователю? –

ответ

1

Я не знаю о PostgreSQL, но должен быть таким же.

Вы можете проверить доступность db с помощью запроса Select 1.

@Query(nativeQuery=true, value="select 1") 
public BigInteger getHeartBeat(); 

Окунитесь в запрос, чтобы проверить наличие базы данных.

try { 
    BigInteger heartBeat = customerRepository.getHeartBeat(); 
    if (heartBeat != null && 1 == heartBeat.intValue()) { 
      return "All ok"; 
    } 
} catch (Throwable e) { 
    return "Database not reachable"; 
} 

В идеале, если у вас есть веб-приложение, вы можете подвергать эту услугу с помощью контроллера и настроить в uptime robot. Поэтому, если ваша служба отключена, вы получаете уведомление.

Смежные вопросы