5

我似乎遇到了与这个原始 SO question的海报相同的问题。

问题是,他用以下评论回答了自己的问题:

我解决了我的问题,我向我的 JNDI 数据源添加了一个验证查询。

不幸的是,这对我没有任何意义,也不能帮助我解决我的问题。validationQuery所以我问:关于我的数据库(Sybase)和用于保存服务器查找信息的 JNDI 条目,什么是“ ”?

提前致谢。

4

3 回答 3

10

Connection验证查询是由数据源运行的查询,用于在返回之前验证 a是否仍然打开。这是 Tomcat对验证查询的定义;向下滚动到“4. 配置 Tomcat 的资源工厂”部分的中间,寻找“validationQuery”属性。

编辑

根据这个答案,如果验证查询失败,则不会抛出错误;坏/关闭的连接被丢弃,并创建另一个连接来替换它。

于 2013-03-13T19:09:15.327 回答
2

它与 JNDI 无关,但与 JDBC 数据源无关。

验证查询用于验证来自数据源连接池的连接,然后再将这些连接移交给客户端。通常这些是影响较小的查询,例如“SELECT 1...”或“SELECT SYSDATE...”

于 2013-03-13T19:09:08.683 回答
1

我认为这是一个测试数据库连接是否正常工作的查询。应用服务器级别的某种 ping。

在原始问题中,定期 ping 数据库保持连接打开。

于 2013-03-13T19:05:58.523 回答