我有一个服务方法的API可以被调用来检查我的数据库连接的健康状况。如何一般测试与休眠数据库连接
该方法从属性文件中提取查询字符串(取决于数据库供应商,现在使用Sybase和HSQL,将来会更多),并执行它。然后该方法让调用者知道它是成功还是失败。
除了这个,我用的是Query.setHint("javax.persistence.query.timeout")
设置超时的查询:
javax.persistence.EntityManager entityManager;
...
Query heartbeatQuery = entityManager.createNativeQuery(heartbeatQueryString);
heartbeatQuery.setHint("javax.persistence.query.timeout", heartbeatTimeout);
heartbeatQuery.getResultList();
我的问题是超时属性正在对我的Sybase数据库,但不反对我的HSQL DB。这听起来像取决于供应商,所以我不知道它何时能够工作。
有没有更好的方法来一般测试数据库连接&包括某种超时参数?
谢谢你的解释。我担心可能会出现这种情况,但这对我来说并不是什么大问题。如果有更好的方式让Hibernate用户测试一个数据库连接,我会很有兴趣听到它。我不知道MySQL Java库 - 这很有趣,我会看看它。 – gregdferrell 2012-01-14 00:34:55