我设置最大连接数是10.发现在10个连接用完以后再getConnection会抛sql异常说已经达到最大连接数.
我本来觉得连接池在到最大连接数后再getConnection应该阻塞等到有空闲的connection吧?为什么会抛sql异常呢?还是我用法有什么问题么?
另外想问一下,在有连接池的情况下是不是应该尽早closeConnection以空出空闲线程?如果过频繁的从池中get和close连接的话会有会有比较的的性能开销?
我以前没用连接池的时候都是尽量长的使用一个连接避免开关连接的开销,用了连接池以后是不是就完全把这些都交给连接池去管理了呢?

解决方案 »

  1.   

    添加这一项配置
    maximum-new-connections
    没有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受<maximum-new-connections>10</maximum-new-connections>
      

  2.   

    ls的maximum-new-connections的意思是池中的连接已经用完,然后等待连接队列的最大请求是10个么?10个内就等待到空闲连接释放出来,10个以上等待就报异常?
      

  3.   

    以前我的项目用的是Proxool,
    不过后来改用c3p0了,
    当用户数据达到800个左右的时候,不管怎么设置Proxool,老是会抛出一些莫名奇妙的异常,
    用c3p0就好多了,达到2000多个用户时,只是会很慢才登录的上去!