关于连接池的两个小问题

时间:2021-08-04 04:29:10
1>.平时我们都是用密码和用户名登陆网站中的,如果我们建立的连接是以用户名和密码来建立的,那么如果有上100万的用户与这个网页建立连接,就算有100个连接池,那么平均每个连接池内也有上万个连接啊,那样连接池是不是显得太大了?

2>.假设我们现在和一个用户建立了数据库连接,他用了一会儿,就不需要连接了,所以我们需要把这条连接段开,并把它放入连接池中。如果我们用connection con对象调用con.close关闭的话,那么和用户建立的这条连接是给彻底的断了,这条连接就不能放入连接池中了。
那么怎么样才能即把和用户建立的这条连接断开,而这条连接不会真的关闭?

16 个解决方案

#1


1.不会有这么点多的,如果真有100万个用户同时访问,他们会排队等待。
2.连接池之所以叫链接池,就是因为它不会真的断开,即使由于某种原因断开了,也会自动修复。

#2


1.连接数应该是看并发量,也就是说同一时刻占用连接的个数。100万用户也许并发量就五六百。
2.只要关闭statement就可,connection应该回收

#3


连接池是基于并行 而不是基于并发的。并行使在同一时刻内进行操作  并发是在一定时间段内一起操作。100W用户登录时并发  真正处于并行的有1000就差不多了
 操作RELEASE连接 用的是连接池里的自定义函数,这个函数里面只把STATEMENT 释放了没有终止 CONN

#4


对于大家回答的第二个问题,我还是有点不懂,你们都说,连接池里面只把STATEMENT 释放了没有终止 CONN,可是,我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?这个不是关闭吗?有人能解释下吗?谢谢!迷糊中...

#5


我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?
==============================================================
没有conn.close这一步,只有将conn放回连接池这一步

#6


那么怎么断开与用户的连接呢?
假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#7


1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#8



1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#9


我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?
==============================================================
没有conn.close这一步,只有将conn放回连接池这一步
==============================================================
有conn.close 这个只是把连接归还到连接池。

#10


hou_bin1238() ( ) 信誉:100    Blog   加为好友  2007-5-26 11:28:59  得分: 0  
 
 
   

1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

-----------------------------------------------------

怎么连web的运作原理都还没有搞清楚????
客户端和服务器的连接怎么能够一直保持着???

#11



1>.平时我们都是用密码和用户名登陆网站中的,如果我们建立的连接是以用户名和密码来建立的,那么如果有上100万的用户与这个网页建立连接,就算有100个连接池,那么平均每个连接池内也有上万个连接啊,那样连接池是不是显得太大了?

一个连接池 100个连接就行 100个池干吗?

#12


2>.假设我们现在和一个用户建立了数据库连接,他用了一会儿,就不需要连接了,所以我们需要把这条连接段开,并把它放入连接池中。如果我们用connection con对象调用con.close关闭的话,那么和用户建立的这条连接是给彻底的断了,这条连接就不能放入连接池中了。
那么怎么样才能即把和用户建立的这条连接断开,而这条连接不会真的关闭?

不是真断 是放回池中

#13


2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

<parameter>   
<name>removeAbandoned</name>   
<value>true</value>   
</parameter> 
<parameter>   
<name>removeAbandonedTimeout</name>   
<value>60</value>   
</parameter>

#14


CON  
用静态代码块写

#15


我说的是自己写的javabean连接池如果我们用connection con对象调用con.close关闭的话,那么和用户建立的这条连接是给彻底的断了,这条连接就不能放入连接池中了。而不是tomcat连接池

#16


连接池的Connection只是实现了Connection接口,根据多态的原理,连接池中的conn.close()和直接用JDBC取的Connection的close()方法肯定是不一样的。

#1


1.不会有这么点多的,如果真有100万个用户同时访问,他们会排队等待。
2.连接池之所以叫链接池,就是因为它不会真的断开,即使由于某种原因断开了,也会自动修复。

#2


1.连接数应该是看并发量,也就是说同一时刻占用连接的个数。100万用户也许并发量就五六百。
2.只要关闭statement就可,connection应该回收

#3


连接池是基于并行 而不是基于并发的。并行使在同一时刻内进行操作  并发是在一定时间段内一起操作。100W用户登录时并发  真正处于并行的有1000就差不多了
 操作RELEASE连接 用的是连接池里的自定义函数,这个函数里面只把STATEMENT 释放了没有终止 CONN

#4


对于大家回答的第二个问题,我还是有点不懂,你们都说,连接池里面只把STATEMENT 释放了没有终止 CONN,可是,我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?这个不是关闭吗?有人能解释下吗?谢谢!迷糊中...

#5


我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?
==============================================================
没有conn.close这一步,只有将conn放回连接池这一步

#6


那么怎么断开与用户的连接呢?
假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#7


1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#8



1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

#9


我们平时在程序中不是从连接池里取得一个conn,用完以后conn.close吗?
==============================================================
没有conn.close这一步,只有将conn放回连接池这一步
==============================================================
有conn.close 这个只是把连接归还到连接池。

#10


hou_bin1238() ( ) 信誉:100    Blog   加为好友  2007-5-26 11:28:59  得分: 0  
 
 
   

1>.第一个问题我的本来的意思是:每次,我们都对每个用户建立一个数据库连接,而这条连接在下次被访问的时候也只能在这个用户访问的时候被连接,而其他的用户不能用这条连接,渐渐的,连接池中的连接就很大很大,甚至达到100万以上?

2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

-----------------------------------------------------

怎么连web的运作原理都还没有搞清楚????
客户端和服务器的连接怎么能够一直保持着???

#11



1>.平时我们都是用密码和用户名登陆网站中的,如果我们建立的连接是以用户名和密码来建立的,那么如果有上100万的用户与这个网页建立连接,就算有100个连接池,那么平均每个连接池内也有上万个连接啊,那样连接池是不是显得太大了?

一个连接池 100个连接就行 100个池干吗?

#12


2>.假设我们现在和一个用户建立了数据库连接,他用了一会儿,就不需要连接了,所以我们需要把这条连接段开,并把它放入连接池中。如果我们用connection con对象调用con.close关闭的话,那么和用户建立的这条连接是给彻底的断了,这条连接就不能放入连接池中了。
那么怎么样才能即把和用户建立的这条连接断开,而这条连接不会真的关闭?

不是真断 是放回池中

#13


2>.假设某某用户很久没动这个网页,那么我们怎么才能把着条用户的连接段开呢?

<parameter>   
<name>removeAbandoned</name>   
<value>true</value>   
</parameter> 
<parameter>   
<name>removeAbandonedTimeout</name>   
<value>60</value>   
</parameter>

#14


CON  
用静态代码块写

#15


我说的是自己写的javabean连接池如果我们用connection con对象调用con.close关闭的话,那么和用户建立的这条连接是给彻底的断了,这条连接就不能放入连接池中了。而不是tomcat连接池

#16


连接池的Connection只是实现了Connection接口,根据多态的原理,连接池中的conn.close()和直接用JDBC取的Connection的close()方法肯定是不一样的。