论坛首页 Java版

WebLogic连接池的一些疑问-每次的连接是不同的connection

浏览 3601 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2004-11-10
我在用wl的连接池(oracle thin)时发现每次getConnection()得到的connection不是我第一次用到的:
我有system.out.println(cnn.toString);

平台显示如下:
weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@87f

weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@882
这还能算是连接池吗?
   
时间:2004-11-10
晕,首先这里显示的字符串能不能代表不同的connection还不一定。其次,连接池里面有很多连接,不一定每次一定要给你同一个,只要可以循环利用就可以。
   
0 请登录后投票
时间:2004-11-10
我只是一个人做测试,所以没有别的connection
我用struts时在config里配连接池时,connection.toString()就是一样的呀。

在console中

Server Connections
myserver 0

Connections我不知道是不是当前连接数,都没有变过一直是0
   
0 请登录后投票
时间:2004-11-10
这种问题如果你要明确的答案,最好在数据库服务器端监测一下,看看建立数据库连接的情况就清楚了。
数据库服务器大都有这样的监测功能。
   
0 请登录后投票
时间:2004-11-10
# 连接池中的返回的连接是完全动态的,这次得到的是不是上次的那个连接,要看连接池的具体调度算法--
   
0 请登录后投票
时间:2004-11-13
weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@87f

没有看过源码,但是看到这个wrapper应该可以猜猜:

用户得到的数据库连接只是weblogic对oracle数据库连接的一个包装即wrapper。

用户每次使用完后调用close关闭的仅仅是wrapper(在JDBC规范中提到的即是“逻辑连接”),但是wrapper包装的connection(在JDBC 规范中提到的就是“物理连接”)并没有关闭,而是被再度利用,继续包装在新的wrapper中。

即有可能你显示是wrapper而不是connection.
   
0 请登录后投票
时间:2004-11-14
是wl6.1吗,好像一个bug,我测试过,每次从池里获取connection都要花费8xx多ms(空闲状态下),我换proxool来做就是正常的
   
0 请登录后投票
时间:2004-11-17
seantan 写道
weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@87f
即有可能你显示是wrapper而不是connection.


可是我用的是connection.toString()呀
   
0 请登录后投票
时间:2004-11-19
你看看JDBC3.0规范中讲连接池的部分,可能会帮助你明白一些吧。

或者参考:

http://www.huihoo.org/j2ee/jdbc3.html
   
0 请登录后投票
时间:2004-12-01
有可能WebLogic初始化数据库连接池就建了多个连接,那么每次去连接池取出的连接就有可能不是同个对象了
   
0 请登录后投票
论坛首页 Java版

跳转论坛:
JavaEye推荐