0

我有一个使用 Hibernate/JPA 连接到数据库的 JSP/Spring 应用程序。我有一个外部程序检查网络服务器是否每 5 分钟启动一次。

该程序调用特定的 URL 来检查 Web 服务器是否仍在运行。服务器返回“SUCCESS”。显然,如果服务器现在是,则不会返回任何内容。请求超时并发出警报以通知系统管理员出现问题...

我想在此过程中添加另一层:如果数据库服务器关闭,我希望服务器返回“ERROR”。有没有办法使用 Hibernate 来检查数据库服务器是否正常运行?

我要做的就是拿一个物体并试图保存它。这会起作用,但我认为这对于我想要的来说可能太多了。我还可以从数据库中读取(加载)一个对象。但是由于我们对所有对象都使用二级缓存,所以对象将从缓存中加载,而不是从数据库中加载。

我正在寻找的是这样的:

HibernateUtils.checkDatabase()

Hibernate中是否存在这样的功能?

4

1 回答 1

0

您可以使用本机查询,例如

Query query = sess.createNativeQuery("select count(*) from mytable").setCacheable(false);
BigDecimal val = (BigDecimal) query.getSingleResult();

那应该强制休眠使用来自池的连接。如果数据库关闭,我不知道休眠返回的错误是什么,因为它无法从池中获取连接。如果数据库已启动,您将获得查询结果。

于 2010-01-26T19:28:06.497 回答