没有用服务器自带的连接池,而是用的网上找的连接池文件.问题是:1:连接池经常因为在执行一个操作以后没有释放链接而把那个链接卡在了那里,
他好像不能执行自动释放,结果在有的时候,因为那个地方的疏忽而去找那个资源没有释放的时间巨麻烦,从log4j里面就那么一点一点的看.这个有更好的解决方法没?或者有更成熟的连接池代码?---------------------------------------------------------2:有一个疑问,假如说,我在声明一个对象的时候,在这个对象的构造方法里面得到一个数据库链接,那么像这样
<jsp:useBean id="aaa" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="bbb" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="ccc" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="ddd" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="eee" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="fff" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="ggg" class="com.hmilyld.test.DBAction"/>
<jsp:useBean id="hhh" class="com.hmilyld.test.DBAction"/>
……
假如我声明了不下20个对象,当然,这样是极其不爽的,:)
在声明这个对象的时候,已经把数据库链接建立了,那么,如果一个用户在代码执行到声明第15个对象而按下了浏览器的停止按钮的话,那么页面不就等于不会再继续进行下去?那么,页面后面的释放数据库链接想用也用不上了把?这样的情况不知道怎么解决?还有另外一种情况就是,当我声明了一个对象,数据库链接也建立了,但是,在我没有释放这个对象之前,我正好把页面给停止了,那么,这个链接不是一直也占用着么?怎么解决?(这个情况和上面那个比较相似)---------------------------------------------
不知道我理解的对不对。
最近老因为这个出问题,而且问题出来以后还不找。哪个朋友有能自动释放数据库链接的?判断一个链接多长时间内没有任何响应,就自动关闭这个链接?谢谢了。

解决方案 »

  1.   

    好像不对,
    jsp的运行是先编译成class文件,那么一下等于把这个class执行了,
    但是如果中间停止的话,会不会有什么影响?
      

  2.   

    取决于你的容器设置。一般来说用户强制关闭浏览器,连接会中断。在servlet执行时输出是存在buffer里面的。等doservice里面的执行晚了之后才flush到客户端。如果在flush之前连接就断了。容器可能终止servlet的进程或者让它执行完,取决于你的配置