当前位置: 代码迷 >> Java Web开发 >> 一个很奇怪的有关问题,registered the jdbc driver [oracle.jdbc.driver.oracledriver] but failed
  详细解决方案

一个很奇怪的有关问题,registered the jdbc driver [oracle.jdbc.driver.oracledriver] but failed

热度:940   发布时间:2016-04-16 21:54:29.0
一个很奇怪的问题,registered the jdbc driver [oracle.jdbc.driver.oracledriver] but failed
我的tomcat中配置了4个<Context  > 节点,当4个站点都运行时,tomcat初始化最后一个网站时就报错:

INFO  [SessionFactoryImpl org.hibernate.impl.SessionFactoryImpl.close(SessionFactoryImpl.java:940)] - closing
INFO  [workThread com.tme.pclweb.service.batchImport.workThread.run(workThread.java:171)] - ready to exit ..., handled Excel file is: 0
INFO  [workThread com.tme.pclweb.service.batchImport.workThread.run(workThread.java:172)] - [@@@2013cer@@@]workThread->run()-> exit!! count=0


严重: The web application [/testweb] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

exception in thread "thread-2" java.lang.outofmemoryerror:PermGen space


但是,我将任何一个<Context  >节点注释掉后,重启tomcat,就没有这个错误,怎么回事?


------解决思路----------------------
应该是内存不足了,多大内存,或者调整tomcat的Xmx参数
------解决思路----------------------
看看两个服务器的配置,启动参数
可以尝试将Oracle的驱动jar,将工程中移除,放在tomcat的lib目录下试试看
------解决思路----------------------
xception in thread "thread-2" java.lang.outofmemoryerror:PermGen space
最后一句说得很清楚了,tomcat内存不足,挂了..
著名的PermGen space错误
------解决思路----------------------
查看下tomcat启动参数中jvm的设置
之前这个问题论坛上出现过,基本都是热部署导致的
直接启动后就出现问题的,估计是内存不足导致的
调大JVM的内存参数,或者将各个项目的oracle驱动jar共用到tomcat的lib里面
这样四个工程用同一个驱动jar,只加载一次,节省点内存空间
------解决思路----------------------
百度的
其中一个
内存泄漏
  相关解决方案