在使用Proxool连接池遇到的几点问题及解决办法

 我来答
手机用户93525
2013-12-07 · 超过50用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:126万
展开全部
究其原因锁定为连接池配置。 公司的程序是一直和数据库做交互的。当程序运行过程中,我停掉数据库服务,本应看到: com.microsoft.sqlserver.jdbc.SQLServerException: 到主机�0�2 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect 链接失败的异常,但是程序并没有抛出这个异常,而是链接成功。只是在从数据库中取数据时发生问题抛出如下错误: com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset by peer: socket write error 可惜头脑简单的我在网上狂找socket write error这个问题出现的原因和解决办法。“这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题�0�2�0�2 可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的! 不过更常见的原因是: 1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; 2:客户关掉了浏览器,而服务器还在给客户端发送数据; 3:浏览器端按了Stop; 4:服务器给客户端响应结果给防火墙拦截了。”但是程序是并不是web程序。仔细想了想问题应该不是这个。然后通过看Proxool连接池配置和此问题的原因,我马上又锁定 Proxool配置中的“house-keeping-sleep-time”这项配置。但是把时间调短还是不能解决问题。 没办法只好继续在网上找。看到有些文中指出添加test-before-use配置,即每次取出连接都检查连接是否可用,就可以做到让连接池实现在故障恢复后自动重连接 但是我添加后还是抛出错误。而且是程序已启动就抛出错误 java.sql.SQLException: Created a new connection but it failed its test 看配置才知道有这么一项配置:house-keeping-test-sql 看网上90%的讲proxool的配置的文章test语句都是这个:select CURRENT_DATE 就连我要改的程序中的也是配置成这个语句,哎。copy,绝对的copy 因为我们公司用的是sql server2005,select CURRENT_DATE这个语句在mssql上根本就是错误的。 改成select getdate()问题搞定。此错误搞定�0�2�0�2
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式