Что такое запрос проверки в отношении баз данных и JNDI?


Мне кажется, что у меня та же самая проблема, что и у плаката этого оригинального вопроса SO.

Проблема в том, что он ответил на свой собственный вопрос следующим комментарием:

Я решил свою проблему, я добавил validationQuery к моему источнику данных JNDI.

К сожалению, это ничего не значит для меня и не помогает мне решить мою проблему. Поэтому я спрашиваю: Что такое "validationQuery " по отношению к моей базе данных (Sybase) и записи JNDI, используемой для поиска сервера информация?

Заранее благодарю.

3 5

3 ответа:

Запрос проверки-это запрос, выполняемый источником данных для проверки того, что Connection все еще открыт, прежде чем вернуть его. Вот определение Tomcatзапроса проверки ; прокрутите вниз до середины раздела "4. Настройте фабрику ресурсов Tomcat", ища атрибут "validationQuery".

EDIT

Согласно этому ответу , если запрос проверки не выполняется, ошибка не возникает; плохое / закрытое соединение отбрасывается, и другое соединение создан, чтобы заменить его.

Он не имеет отношения к JNDI, но к источникам данных JDBC.

Запрос проверки используется для проверки соединений из пула соединений источника данных, прежде чем они будут переданы клиентам. Обычно это низкоэффективные запросы, такие как "Выберите 1..."или" выберите SYSDATE..."

Я предполагаю, что это запрос для проверки, работает ли соединение с БД нормально. Какой-то пинг на уровне сервера приложений.

В исходном вопросе периодическое пингование БД сохраняет соединение открытым.