当前位置: 技术问答>java相关
关于控制同一数据库的连接数的问题!come on!
来源: 互联网 发布时间:2015-02-22
本文导语: 我在一个application中定义了一个connect,然后引用,在每个jsp文件当中为此connect用一个session建立一个stmp,页面开始就建立,到页面结束就close。可是我想到一个问题,如果一个用户因为什么原因没有等到页面解释完毕就...
我在一个application中定义了一个connect,然后引用,在每个jsp文件当中为此connect用一个session建立一个stmp,页面开始就建立,到页面结束就close。可是我想到一个问题,如果一个用户因为什么原因没有等到页面解释完毕就条转到别的页面,则此连接会依旧保持。如此则stmp越来越多,最终数据库不堪重负。
于是我尝试在每个页面开始的时候就关闭stmp.然而通过实验表明----当我和一个同事在不同机器上很快的不停的点击此网站上的连接的时候,服务器有时候就会出现nullpoint错误,而且在数据库当中sp_who可以看到连接数增加---奇怪啊,我每个页面已开始执行的就是将此session中的唯一的stmp关闭,怎么可能反而多出了那么多的连接?而且能让服务器down机自动重启。
我想到了连接池,可连接池是很多的connect而已,真正代表数据库连接数的据我观察实际上是stmp,每建立一个数据库的连接就加一。难道connect建立的stmp有限?或者不能同时建立?
请大家援手,援手啊!!!!!!!!!!!!!!!!!!!!!!!!!!!
于是我尝试在每个页面开始的时候就关闭stmp.然而通过实验表明----当我和一个同事在不同机器上很快的不停的点击此网站上的连接的时候,服务器有时候就会出现nullpoint错误,而且在数据库当中sp_who可以看到连接数增加---奇怪啊,我每个页面已开始执行的就是将此session中的唯一的stmp关闭,怎么可能反而多出了那么多的连接?而且能让服务器down机自动重启。
我想到了连接池,可连接池是很多的connect而已,真正代表数据库连接数的据我观察实际上是stmp,每建立一个数据库的连接就加一。难道connect建立的stmp有限?或者不能同时建立?
请大家援手,援手啊!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
freeConnection()是你自己的释放数据库资源的代码。用finally修饰是可以保证能够执行到
|
您不能在用以前再申请吗?
用完了马上关闭,然后再处理页面输出,不就结了。
用完了马上关闭,然后再处理页面输出,不就结了。