Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Application Server » Tomcat  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 tomcat连接池支持重新连接数据库吗?
pigengler





发贴: 4
积分: 0
于 2006-04-20 15:23 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我做了一个测试,程序使用tomcat的连接池
<ResourceParams name="jdbc/info">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test</value>
</parameter>
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>teesd</value></parameter>
<parameter><name>maxActive</name><value>100</value></parameter>
<parameter><name>maxIdle</name><value>50</value></parameter>
<parameter><name>removeAbandoned</name><value>false</value></parameter>
<parameter><name>maxWait</name><value>-1</value></parameter>
</ResourceParams>

测试一、当我的tomcat启动以后,如果数据库重启了,tomcat的连接池就再也连接不到数据库了。。
测试二、tomcat启动的时候,数据库处于关闭状态,tomcat启动以后,再打开数据库,tomcat可以连接到数据库,但是如果数据库再次重启,tomcat的连接池就再也连接不到数据库了。。

tomcat在哪里可以配置在数据库重启之后,重新连接数据库????



作者 Re:tomcat连接池支持重新连接数据库吗? [Re:pigengler]
pigengler





发贴: 4
积分: 0
于 2006-04-20 15:27 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
在网上找到这样的一篇文章,,,但是测试了以后好像不行。

tomcat连接池自动重新连接问题- -
Tag: Tag tomcat 连接池 重新连接
在以往的开发中,常常遇到tomcat连接池断掉后(比如网络断线),无法自动重新连接,导致数据库连接始终无效,今天发现此问题的一个解决方案。
首先,在连接池的配置中(XXX.XML),DB的url后加上参数,如sqlserver的加;autoReconnect=true,
这是自动重连的基础保证。
其次,一定要在tomcat中抛出连接异常,这一点很重要。一般我们的连接都会用class封装起来,一场也会在class中捕获,并处理掉,这样会导致连接无法自动恢复。估计tomcat所带的dbcp连接池的重连机制是捕获tomcat中抛出的连接异常再重新连接,所以,连接异常一定要被抛出而不是自行处理掉。否则连接池会无法重新连接。
所以,实现tomcat自带连接池dbcp自动重连的解决方案是,1。加上autoReconnect=true的参数 2。连接异常要被抛出



作者 Re:tomcat连接池支持重新连接数据库吗? [Re:pigengler]
pigengler





发贴: 4
积分: 0
于 2006-04-20 15:55 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
还有一点比较奇怪的是,当数据库已经down了的时候,我的测试程序向连接池申请连接,连接池居然成功的返回一个连接,但是用这个连接执行SQL的时候,就会抛出SQLException Connection reset by peer: socket write error。。。。。

当我的数据库重启动以后,就一直都报这个错了。系统就再也连接不上了。

DEBUG 2006-04-20 15:54:54,334 | CatalogService:getCatalogById | 申请org.apache.commons.dbcp.PoolableConnection@79801c
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset by peer: socket write error
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)



作者 Re:tomcat连接池支持重新连接数据库吗? [Re:pigengler]
bluepure

pureblue



发贴: 509
积分: 85
于 2006-04-20 16:32 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
dbcp好像不支持,autoReconnect=true是连接 mysql的专用参数

建议用proxool作连接池。

在tomcat里的配置为:

<context>
<Resource
name="jdbc/mydatasource"
auth="Container"
type="javax.sql.DataSource"
factory="org.logicalcobwebs.proxool.ProxoolDataSource"
proxool.alias="hrs"
user="joe"
password="******"
delegateProperties="foo=bar"
proxool.driver-url="jdbc:oracle:thin:@127.0.0.1:1521:DB"
proxool.driver-class="oracle.jdbc.driver.OracleDriver"/>
</context>


scottlai edited on 2006-04-20 17:42

作者 Re:tomcat连接池支持重新连接数据库吗? [Re:pigengler]
pigengler





发贴: 4
积分: 0
于 2006-04-24 08:30 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
其他的兄弟没有什么意见和看法吗?


作者 Re:tomcat连接池支持重新连接数据库吗? [Re:pigengler]
bluecrystal





发贴: 2788991
积分: 48
于 2006-07-14 17:15 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
建议不要用dbcp


Just Software & Travel
-- 我的blog -- 技术点滴/经验分享

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923