jdbc proxool 连接池超时 惊天问题

firebird44 2011-12-08 04:51:41
请问哪位对proxool比较熟悉,我们在做项目的时候遇到一个问题:

Java Web程序 jdbc,proxool,
数据库: mysql
服务器都是:linux


Web程序运行的过程中,如果把数据库关闭,执行 DriverManager.getConnection("proxool." + DBName); 的时候不报异常,不运行,被阻塞了。而且每访问一次,socket就增加一个,这样服务会死掉的。

我们希望这句话抛出异常, 我们在异常中处理日志什么的。


我尝试了用DriverManager.setLoginTimeout(5); 设置超时, proxool配置文件中 也尝试用jdbc-0.proxool.driver-url=jdbc:mysql://xxx:3306/aa?user=root&password=&connectTimeout=2000 设置超时, 但都没有作用,
请问哪位知道有什么好的办法吗?


备注:stmt.setQueryTimeout(1);和这个没有关系, 我知道这句话怎么用。
...全文
419 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
游一游走一走 2011-12-09
  • 打赏
  • 举报
回复
楼主结合
house-keeping-test-sql
test-before-use:
这两个属性试试,测试connection的可用性
firebird44 2011-12-09
  • 打赏
  • 举报
回复
“在我的项目中,如果主动关闭数据库,proxool是没办法处理,如果单单是超时还好处理点,proxool会自动重新连。可能进入你说的死等状态。”


但是直接用JDBC是可以解决这个问题的, url里面加上参数connectTimeout=2000,修改为jdbc:mysql://ip/db?connectTimeout=2000 就可以让程序出异常,然后在异常中处理。

既然JDBC可以, proxool为什么不可以呢? 难道proxool把url中的参数设置失效了?

cuisj922_2010 2011-12-09
  • 打赏
  • 举报
回复
我用proxool解决mysql默认8小时连接问题,问题是解决了,但是打开mysql客户端,每查询一条sQL语句,就毁掉并重建一个connection连接,一直没解决,只是目前网站访问量小,没造成性能问题。


附贴求解答。。。
oO临时工Oo 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 firebird44 的回复:]
请问哪位对proxool比较熟悉,我们在做项目的时候遇到一个问题:

Web程序运行的过程中,如果把数据库关闭,执行 DriverManager.getConnection("proxool." + DBName); 的时候不报异常,不运行,被阻塞了。而且每访问一次,socket就增加一个,这样服务会死掉的。
[/Quote]

在我的项目中,如果主动关闭数据库,proxool是没办法处理,如果单单是超时还好处理点,proxool会自动重新连。可能进入你说的死等状态。

org.logicalcobwebs.proxool.configuration
此包下面有一个配置文件的dtd,可以研究一下看有没属性可以配置。


  • 打赏
  • 举报
回复
没用过。
firebird44 2011-12-08
  • 打赏
  • 举报
回复
附加: 我用的是 proxool-0.9.0RC2.jar

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧