java - 如何将连接标记为从 Tomcat 6 中的池中逐出

标签 java database tomcat pool

我们有一个使用 Oracle StoredProc 的应用程序。当存储过程从我们的应用程序外部升级或重新编译时,数据库连接必须关闭并重新打开。否则我们会得到一个 Oracle 异常 ORA-20003。

到目前为止,我们一直在使用特定于 WebLogic 的解决方案,我们在其中抛出特定的异常,Weblogic 连接池会将连接标记为逐出。我们现在正在迁移到 Tomcat 6。

Tomcat 6 是否有类似的解决方案?或者更好的是,通用解决方案?

我们可以将连接池配置为 minIdle=0 和 timeBetweenEvictionRunsMillis=一些小数字,但仍然没有保证,只是问题的缓解。

感谢您的帮助!

最佳答案

你能想出一个 SELECT 语句来验证连接是否是最新的吗?如果是这样,您可以使用它来配置连接池 validationQuery (可能与 connectionInitSqls 结合使用)。

编辑:也许USER_OBJECTS.LAST_DDL_TIME有什么帮助吗?

关于java - 如何将连接标记为从 Tomcat 6 中的池中逐出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318408/

相关文章:

java - 按优先级对任务进行排序

mysql - View 如何工作?

sql - 从列表中为每个帐户 ID 获取一行

java - java中的依赖项目是否采用父项目的log4j配置?

java - 制作文件输入流时未找到文件异常?

java - 将文件上传到 URL?

java - THREDDS 数据服务器 : Deployment fails in Tomcat 8

apache - 302 重定向,Tomcat 落后于 Apache for hybris

java - 如何以完全兼容的方式将枚举值添加到 AVRO 模式?

mysql - 如何将今年的第一个日期放在 WHERE 子句中。数据库