|
精华帖 (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 这还能算是连接池吗? 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2004-11-10
晕,首先这里显示的字符串能不能代表不同的connection还不一定。其次,连接池里面有很多连接,不一定每次一定要给你同一个,只要可以循环利用就可以。
|
|
| 返回顶楼 | |
|
时间:2004-11-10
我只是一个人做测试,所以没有别的connection
我用struts时在config里配连接池时,connection.toString()就是一样的呀。 在console中 Server Connections myserver 0 Connections我不知道是不是当前连接数,都没有变过一直是0 |
|
| 返回顶楼 | |
|
时间:2004-11-10
这种问题如果你要明确的答案,最好在数据库服务器端监测一下,看看建立数据库连接的情况就清楚了。
数据库服务器大都有这样的监测功能。 |
|
| 返回顶楼 | |
|
时间:2004-11-10
# 连接池中的返回的连接是完全动态的,这次得到的是不是上次的那个连接,要看连接池的具体调度算法--
|
|
| 返回顶楼 | |
|
时间: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. |
|
| 返回顶楼 | |
|
时间:2004-11-14
是wl6.1吗,好像一个bug,我测试过,每次从池里获取connection都要花费8xx多ms(空闲状态下),我换proxool来做就是正常的
|
|
| 返回顶楼 | |
|
时间:2004-11-17
seantan 写道 weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_OracleConnection@87f
即有可能你显示是wrapper而不是connection. 可是我用的是connection.toString()呀 |
|
| 返回顶楼 | |
|
时间:2004-11-19
你看看JDBC3.0规范中讲连接池的部分,可能会帮助你明白一些吧。
或者参考: http://www.huihoo.org/j2ee/jdbc3.html |
|
| 返回顶楼 | |
|
时间:2004-12-01
有可能WebLogic初始化数据库连接池就建了多个连接,那么每次去连接池取出的连接就有可能不是同个对象了
|
|
| 返回顶楼 | |







