我正在使用带有PostgreSQL数据库的hibernate。我正在使用PostgreSQL二进制分发并手动初始化,启动和停止数据库。在Java中有什么办法,hibernate找出数据库没有启动?
答案 0 :(得分:1)
我不知道PostgreSQL,但应该是相同的。
您可以使用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";
}
理想情况下,如果您有Web应用程序,则可以通过控制器公开此服务并在uptime robot中进行配置。因此,如果您的服务中断,您会收到通知。