论坛首页 Java企业应用论坛

tomcat文档的一个疑似bug?

浏览 3413 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-06-15  
查阅jdbc spec的时候在11.4 data source implementation节发现这么一段:Connection.close()关闭逻辑连接,如果程序关闭逻辑连接后试图再访问会得到SQLException。

那么tomcat的文档jndi-datasource-examples-howto.html提到Random Connection Closed Exceptions,推荐使用这样的代码关闭连接:

    rs.close();;
    rs = null;
    stmt.close();;
    stmt = null;
    conn.close();; // Return to connection pool
    conn = null;  // Make sure we don't close it twice


但是按照jdbc spec的说法,如果Request 1重复关闭连接,会得到exception,这个问题岂不是不存在了么。
由于这个问题有点大,所以我没有尝试google,希望版主不要删帖
   发表时间:2005-06-15  
没看明白你想说什么。把Conn关完,再把Reference设成Null好像没什么错。

最保险的做法是:
if (!conn.closed();); {
conn.close();

}
0 请登录后投票
   发表时间:2005-06-15  
tomcat 文档:These can occur when one request gets a db connection from the connection pool and closes it twice.

就是说,按spec,你的代码是不必要的,要是conn已经close了,第二次关闭会导致exception。判断if (!conn.closed()) 就没有任何意义
0 请登录后投票
   发表时间:2005-06-15  
哪里看出关闭两次了?
0 请登录后投票
   发表时间:2005-06-15  
请看tomcat-docs/jndi-datasource-examples-howto.html

Common Problems/Random Connection Closed Exceptions一节
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics