连接池的奇怪问题!!!java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
<name>maxActive</name>
<value>40</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
<value>40</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
解决方案 »
- java.net.UnknownHostException: smtp.sina.com
- JavaEE 如何实现三级联动(省市县)?
- 8583协议里的位图怎么处理
- JAVA上机考试归来,题目如下
- hibernate中锁的问题
- SSH空指针异常急救
- 关于RMI的一点小疑问(入门级)!诚信给分!
- 使用Struts+hibernate开发时 表单数据Action获取不到
- 如何在JBuilder X中创建Struts应用?
- 一个struts的问题????
- 急! 我lotus.jdbc.domino.DominoDriver连接lotus Domino,为什么只能插入一个文档时域值只能是字母,不能是汉字
- 新手问题:Hibernate中文乱码问题
if(stmt!=null) stmt.close();
if(conn!=null) conn.close();
我这个方法就判断了
if(stmt!=null) stmt.close();
if(conn!=null && !conn.isClosed()) conn.close();
错误信息:
login error:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.楼主给的代码:
System.out.println(e);
System.out.println("NsrcxDBAccess.login error: no data");显然异常不是在楼主给的代码那里抛出来的.
很可能是两个线程共享了一个Connection对象,当一个线程关闭了这个连接对象而另一个线程试图对这个连接执行sql操作的时候抛出了这个异常.
可能楼主的池设计有问题, 能否把cb的代码贴出来我帮你看看?
if (rs != null) { rs.close();}
if (con != null) {
try {
con.close();
} catch (SQLException e) {
System.out.println(e);
}
}
A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results. 就是说一个Statement如果被close了,或者另做查询什么的,以前做的ResultSet就会自动被关掉。所以要重新声明statement.
不应该关闭,应该把它存入cb的一个连接对象数组 ,用完在jsp页面中释放
执行一次后-在JSP里CLOSE();
A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results. 就是说一个Statement如果被close了,或者另做查询什么的,以前做的ResultSet就会自动被关掉。所以要重新声明statement.支持一下