我有一个连接到数据库的使用Hibernate/JPA的JSP/Spring应用程序。我有一个外部程序,检查网络服务器是否每5分钟启动一次。
该程序调用特定的URL来检查web服务器是否仍在运行。服务器返回“成功”。显然,如果服务器现在是,则不会返回任何内容。请求超时并发出警报,通知sysadmin有问题...
我想在这个过程中添加另一个层:如果数据库服务器关闭,我希望服务器返回"ERROR“。有没有一种方法可以使用Hibernate来检查数据库服务器是否正常运行?
我想要做的就是拿一个物体,试着保存它。这将工作,但我认为这可能是太多的我想要的。我也可以从数据库中读取(加载)一个对象。但由于我们对所有对象都使用二级缓存,因此将从缓存加载对象,而不是从数据库加载。
我要找的东西大概是:
HibernateUtils.checkDatabase()Hibernate中有这样的功能吗?
发布于 2010-01-27 03:28:06
你可以使用原生查询,例如
Query query = sess.createNativeQuery("select count(*) from mytable").setCacheable(false);
BigDecimal val = (BigDecimal) query.getSingleResult();这应该会强制hibernate使用池中的连接。如果数据库关闭了,我不知道hibernate返回的错误会是什么,因为它不能从池中获得连接。如果数据库已启动,您将获得查询的结果。
https://stackoverflow.com/questions/2141049
复制相似问题