У меня есть метод сервиса для 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();
Моя проблемасвойство timeout работает с моей базой данных Sybase, но не с моей базой данных HSQL.Похоже, это зависит от поставщика, поэтому я не знаю точно, когда он будет работать.
Есть ли лучший способ для общего тестирования соединения с БД и включения какого-либо параметра времени ожидания?