validationQuery (выберите 1) работает 24/7 без указания? - PullRequest
0 голосов
/ 09 октября 2019

Наш администратор базы данных говорит, что к нашей базе данных «снежинка» выполняется запрос «SELECT 1», работающий 24/7, но мы вообще не указали проверочный запрос.

Мы используем источник данных tomcat, но не сделали этогоконкретный datasource.validation-запрос в файле свойств.

datasource.url: jdbc:snowflake://mytestserver:443/? 
warehouse=testwh&db=test&schema=mytest&CLIENT_SESSION_KEEP_ALIVE=true
datasource.username: xxxx
datasource.password: xxxx

datasource.type: org.apache.tomcat.jdbc.pool.DataSource
datasource.initial-size: 1
datasource.min-idle: 1
datasource.max-idle: 10
datasource.max-active: 10

Существуют ли какие-либо свойства пула соединений по умолчанию, которые контролируют, когда выполняются запросы проверки и через какой интервал и выполняется запрос SELECT 1? Можем ли мы как-нибудь отключить запрос SELECT 1 или сделать его один раз в день?

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Как выяснил один из моих коллег, наши приложения Java Spring Boot обычно включают в себя библиотеку Spring Boot Actuator, которая включает в себя несколько функций проверки работоспособности «из коробки». Один из них предназначен для проверки работоспособности объекта javax.sql.Datasource, и он делает это, выполняя запрос SELECT 1.

решение:

management.health.db.enabled:ложь

0 голосов
/ 09 октября 2019

Я не уверен, почему validationQuery будет работать без конфигурации. Насколько мне известно, Tomcat по умолчанию устанавливает для этого параметра значение NULL. Можно попытаться явно указать validationQuery и validationInterval в определении источника данных, чтобы обойти эту проблему. Я также всегда рекомендую использовать последнюю версию драйвера JDBC.

...