我正在使用 Tomcat 与 Oracle 数据库建立连接池。它工作正常,但是当我长时间使用我的应用程序时,出现“ 连接重置 ” 错误。我收到此错误的原因是,在tomcat数据源的逻辑连接关闭之前,oracle服务器的物理连接已关闭。因此,在从数据源获取连接之前,我正在使用连接对象的 isValid(0) 方法检查连接有效性,如果物理连接已关闭,则该方法为false。但我不知道如何从池中 删除 该 无效的连接 对象。
我在 server.xml* 文件中配置数据源时使用了 validatationquery 。在提供给应用程序之前,它将通过在数据库中执行查询来检查连接的有效性。 *
对于 Oracle
validationQuery="/* select 1 from dual */"
对于 MySql
validationQuery="/* ping */"