当前位置: 技术问答>java相关
高分求助!!!
来源: 互联网 发布时间:2015-08-08
本文导语: 我在weblogic6.1服务器上部署了EJB组件,最初使用正常,但使用一段时间后,客户端就会出错,服务器就出现如下错误提示:(但重起weblogic服务器就正常了,不过用一段时间又出现同样问题) java.sql.SQLException: Error a...
我在weblogic6.1服务器上部署了EJB组件,最初使用正常,但使用一段时间后,客户端就会出错,服务器就出现如下错误提示:(但重起weblogic服务器就正常了,不过用一段时间又出现同样问题)
java.sql.SQLException: Error accessing jdbc driver: driverURL = jdbc:weblogic:p
ol:NM_JDBC, props = {connectionPoolID=NM_JDBC, enableTwoPhaseCommit=false}
请教各位高手,这是什么原因,解答立即给分!!!
java.sql.SQLException: Error accessing jdbc driver: driverURL = jdbc:weblogic:p
ol:NM_JDBC, props = {connectionPoolID=NM_JDBC, enableTwoPhaseCommit=false}
请教各位高手,这是什么原因,解答立即给分!!!
|
你的Connection肯定有泄漏,可能是多线程的时候引起的问题
conn=dataSource.getConnection();
不会判断当前的conn是否有效,假如另一个线程在finally块执行前进入这个函数并执行到这一句,可能会造成原来的conn泄漏
试着改成这样
if( conn != null )
conn=dataSource.getConnection();
public void connClose(){
try{
conn.close();
conn = null;
}catch(Exception e){}
}
conn=dataSource.getConnection();
不会判断当前的conn是否有效,假如另一个线程在finally块执行前进入这个函数并执行到这一句,可能会造成原来的conn泄漏
试着改成这样
if( conn != null )
conn=dataSource.getConnection();
public void connClose(){
try{
conn.close();
conn = null;
}catch(Exception e){}
}
|
如果你使用了Connection Pool,就先强Connection Pool得尺寸加大,一个是初始尺寸,还有一个是最大尺寸,根据访问量进行合理分配.还有可能是因为你在Servlet中使用Connection对象后没有将其关闭,记得在使用完毕后将其关闭.另一种情况就是数据库服务器没有做特别设置.不知道你使用得是哪一种数据库,一般较大得数据库都可以设置并发访问量,可以根据数据库类型去查阅相应资料将数据库得并发访问数改的大一些应该就可以了.