Ответ 1
Если вы используете spring для управления транзакциями, время ожидания может быть указано и на уровне транзакции. @Transactional (тайм-аут = 10)
У меня есть веб-приложение на Tomcat, которое обрабатывает пул соединений с БД и использует Spring JDBCTemplate для выполнения запросов. Было предложено, чтобы я реализовал страницу состояния, на которую будет отслеживаться процесс heartbeat, чтобы определить, все ли здорово с сервером.
Как часть этого, я хочу сделать запрос БД, чтобы определить, нормально ли соединение с базой данных. В идеале, поскольку это просто "выбрать 1 из", я бы хотел, чтобы он быстро вернулся в течение 10 секунд, чтобы указать на ошибку, если БД не ответила в это время.
Тем не менее, я не хочу менять свое соединение на тайм-аут, что быстро для обычных запросов.
Есть ли способ установить тайм-аут для каждого запроса, используя либо необработанные JDBC, либо Spring обертки JDBC?
Если вы используете spring для управления транзакциями, время ожидания может быть указано и на уровне транзакции. @Transactional (тайм-аут = 10)
Используйте setQueryTimeout для объекта Statement (или PreparedStatement).