【问题标题】:Hot deploy problem in Tomcat with proxool and oracle使用 proxool 和 oracle 在 Tomcat 中的热部署问题
【发布时间】:2010-01-23 19:00:07
【问题描述】:

我对 Tomcat 中的 proxool 和 oracle 驱动程序有疑问。

我使用的 web 应用程序包含一个 webservice jar 文件,该文件使用 metro 和一个 servlet 来初始化/启动 proxool 池。 proxool 池配置了 oracle 连接。当服务被调用时,它从池中获取一个连接,执行一个语句并返回。之后我关闭服务方法中的结果集、语句和连接。

当我现在尝试热取消部署 Web 应用程序时,servlet 通过 ProxoolFacade.shutdown(); 停止 proxool 池;在它的销毁方法中。

问题是,由于无法从提取的Web应用程序的文件夹中删除Oracle驱动程序ojdbc5.jar,因此无法完成热卸载。

尝试对 SQL 服务器数据库和 jtds 驱动程序进行相同的操作,它不会出现此问题。

使用过的版本: Apache Tomcat 6.0.18 Oracle 11g JDBC 驱动程序 11.1.0.6.0 Proxool 0.9.1

有人有想法吗?

问候蒂莫

【问题讨论】:

    标签: oracle tomcat proxool


    【解决方案1】:

    您必须将 Oracle 驱动程序添加到 Tomcat 实例并配置 Tomcat JNDI with an Oracle datasoure

    这样,当应用程序终止时驱动程序将保持活动状态,并且 Tomcat 将控制数据库连接的池。您的问题的原因是某些数据库驱动程序“挂钩”到 VM 中。这意味着 Tomcat 在重新部署期间无法卸载类 - 周围仍然存在引用。

    我什至建议尝试将 proxool 移至 Tomcat 服务器并让 Tomcat 为您管理池。这将使热部署更快、更可靠,即使您泄漏连接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 2011-05-23
      • 2010-11-26
      相关资源
      最近更新 更多