我有一個服務方法的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