在Tomcat中,我有一个关于proxool和oracle驱动的问题。
我使用的web应用程序包含一个使用metro的web服务jar文件和一个初始化/启动proxool池的servlet。proxool池配置有oracle连接。当服务被调用时,它从池中获取一个连接,执行一条语句并返回。之后,我关闭了服务方法中的结果集、语句和连接。
当我现在尝试热取消部署web应用程序时,servlet在其destroy方法中通过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
有谁有主意吗?
关于Timo
发布于 2009-05-08 09:30:11
您必须将Oracle驱动程序添加到Tomcat实例并配置Tomcat JNDI with an Oracle datasoure。
这样,当应用程序终止时,驱动程序将保持活动状态,Tomcat将控制DB连接的池化。问题的原因是一些DB驱动程序“挂钩”到VM中。这意味着Tomcat不能在重新部署期间卸载类--周围仍然有引用。
我甚至建议尝试将proxool移到Tomcat服务器中,让Tomcat为您管理这些池。这将使热部署变得更快、更可靠,即使您泄漏了连接。
https://stackoverflow.com/questions/838699
复制相似问题