Превышение времени ожидания для подключения к базе данных в файле свойств
Мне было интересно, есть ли конкретный способ переопределить время ожидания подключения к базе данных в файле свойств в моем веб-проекте Java? Я использую Hibernate, Spring и MySQL DB. Я пробовал несколько различных полей свойств и сократил время ожидания до 1 миллисекунды, однако соединение все еще завершено, и транзакции все еще обрабатываются должным образом.
Эти поля свойств я использовал безрезультатно...
spring.jpa.properties.javax.persistence.query.timeout=1
spring.jdbc.template.query-timeout=1
hibernate.c3p0.timeout=1
Hibernate переопределяет это значение тайм-аута или я просто неправильно его установил? Заранее спасибо!
1 ответ
Предполагая, что вы используете Spring Boot, вы можете попробовать:
spring.transaction.defaultTimeout=1
Это свойство устанавливает значение defaultTimeout для транзакций равным 1 секунде.
(Глядя на исходный код TransactionDefinition
кажется, что невозможно использовать что-то более точное, чем секунды.)
Смотрите также: TransactionProperties
javax.persistence.query.timeout
Это подсказка для Query
, Он должен работать, если вы используете его так:
entityManager.createQuery("select e from SampleEntity e")
.setHint(QueryHints.SPEC_HINT_TIMEOUT, 1)
.getResultList();
Смотрите также QueryHints
spring.jdbc.template.query-timeout
Помните, что согласно JdbcTemplate#setQueryTimeout
Javadoc:
Любой указанный здесь тайм-аут будет переопределен оставшимся тайм-аутом транзакции при выполнении в транзакции с тайм-аутом, указанным на уровне транзакции.
hibernate.c3p0.timeout
Я подозреваю, что это свойство указывает время ожидания для получения из пула соединений, а не для выполнения запроса