首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

如果数据连结池已经连接到最大数量的连接了,再有请求发连接会如何样

2011-12-25 
如果数据连结池已经连接到最大数量的连接了,再有请求发连接会怎么样。1。加入我设置了最大连接数量maxActive

如果数据连结池已经连接到最大数量的连接了,再有请求发连接会怎么样。
1。加入我设置了最大连接数量maxActive="30",假如已经连接30个了,如果有新请求需要连接数据库,执行到Connection conn =this.getDataSource(dataSourceName);时候,会发生什么,直接报错?或者等待数据池中产生可用的连接?
  2。我这个问题主要是为了并发考虑的 ,我本来写的处理用户请求类,在连接数据库池后都会thread.sleep(100)下,可以先处理其他请求不需要连接数据库的请求。突然想到如果连接数量满了,会不会造成死锁?我改成在连接数据库前sleep是不是就没问题了?
  我的Dispatch类是并发的,并发执行warpSocket()方法处理用户请求

[解决办法]
一般的连接池在负荷已满是都是放到请求队列里面


[解决办法]
不是都有maxWait 最大等待时间吗

超过这个时间就会返回Connection pool exhausted 

拿不到链接了
[解决办法]

探讨
不是都有maxWait 最大等待时间吗

超过这个时间就会返回Connection pool exhausted

拿不到链接了

[解决办法]
如果你没设maxwait
他会先看看有没有可用连接,如果没有。。。崩掉把。。。
Stack of trace 大概哦,我乱猜的
[解决办法]
如果连接数已经达到上限,就会加入等待队列,而如果同样达到了等待队列的上限,请求失败。
[解决办法]
新请求的线程会堵塞,等待池中资源的释放,好比你在食堂打饭一样

热点排行