框架仅用了hibernate, 数据库mysql,连接池proxool , 网上有的说是 并并发数不够,但是我在服务器租用商 那里查到 并发数 他们是不限制的.
我总觉得503跟数据库连接的配置文件有关系,还望大虾赐教.
proxool.xml 配置
- XML code
<!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 --> <house-keeping-sleep-time>90000</house-keeping-sleep-time> <!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 --> <maximum-new-connections>20</maximum-new-connections> <!-- 最少保持的空闲连接数 --> <prototype-count>10</prototype-count> <!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 --> <maximum-connection-count>20</maximum-connection-count> <!-- 最小连接数 --> <minimum-connection-count>10</minimum-connection-count> <!-- 在分配连接前后是否进行有效性测试,这个是解决本问题的关键 --> <test-before-use>true</test-before-use> <test-after-use>true</test-after-use> <!-- 用于测试的SQL语句 一定要写(不知道问什么)--> <house-keeping-test-sql> SELECT CURRENT_USER </house-keeping-test-sql>
------解决方案--------------------
如果你用了opensessioninview就写一个循环方法测试并发
------解决方案--------------------
是你的web server扛不住了,跟数据库连接P关系没有
你可以用压力测试测下并发能抗住多少?
解决办法
两种
一、换web server
二、负载均衡