日期:2014-05-18  浏览次数:20810 次

连接池问题
web服务器和数据库服务器分开,在同一局域网内,如果局域网突然不通,过会通了以后,连接池中的连接就没有用了,这个问题如何解决
用tomcat的连接池不行,请问用什么的连接池好呀,如果tomcat的连接池能行,要如何配置呀

------解决方案--------------------
帮忙顶,学习
------解决方案--------------------
Max. Wait for Connection: 后面的值设大一点就可以了
------解决方案--------------------
楼上的不对。
首先,tomcat的连接池功能很简单,并不具备连接断开一段时间后的自动修复功能;
其次,一般的连接池在管理功能上是:对于不通的连接,连接池自动回收,同时保持最小连接数。
所以,你的问题在于让连接池的最小连接数大于0;
最大活动连接数 Max Active Connections:10
最大空闲连接数 Max Idle Connections:5
让前一个大于后一个;
如果还不行,那么手动写一个线程,动态查询连接池的连接数量,连接数等于0则添加连接。
------解决方案--------------------
这好样不是Tomcat连接池的问题
------解决方案--------------------
alexwan(牧林:致力于IMS系统开发) 说的对 等待时间长一些 但是如果网络断的话。。。。什么连接池好象都不行。
------解决方案--------------------
配置TOMCAT5.5以上版本不带ADMIN这样配置(COMMON/LIB下有驱动)
修改%TOMCAT_HOME%/conf/server.xml文件,在 <GlobalNamingResources> </GlobalNamingResources> 之间
添加以下内容:
<Resource
name= "jdbc/****** "
type= "javax.sql.DataSource "
password= "123456 "
driverClassName= "com.microsoft.jdbc.sqlserver.SQLServerDriver "
maxIdle= "2 "
maxWait= "5000 "
username= "sa "
url= "jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart "
maxActive= "4 "/>
修改%TOMCAT_HOME%/webapps/yourweb/WEB-INF下的web.xml文件,在 <web-app> </web-app> 之间添加以下 <resource-ref>
<description> sqlserverDB Connection </description>
<res-ref-name> jdbc/****** </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
在%TOMCAT_HOME%/conf/Catalina/localhost下新建一个与你web文件夹同名的xml文件
<?xml version= "1.0 " encoding= "UTF-8 "?>
<Context>
<Resource
name= "jdbc/****** "
type= "javax.sql.DataSource "
password= "123456 "
driverClassName= "com.microsoft.jdbc.sqlserver.SQLServerDriver "
maxIdle= "2 "
maxWait= "5000 "
username= "sa "
url= "jdbc:microsoft:sqlserver://localhost;DatabaseName=quickstart "
maxActive= "4 "/>
</Context> 根据个人具体情况进行相应修改。
使用ADMIN配置的
在\conf\Catalina\localhost下你的工程名。XML中加入
<ResourceLink name= "jdbc/**** " global= "jdbc/**** " type= "javax.sql.DataSource "/>
基本就可以了。。。。
------解决方案--------------------
数据库连接缓冲池是为了降低每次建立/释放连接时的开销,故而,每次程序端归还回来的连接并不直接关闭,而是留给以后给其他程序再用。归还在池(pool)里,没有被使用的称为空闲(idle),被借出的,使用中的连接称为active。

所以顾名思义,maxIdle者,代表当pool中的空闲连接达到此数值后,以后被归还的连接都回被直接释放,直到池中空闲连接数因为其他程序继续借出而重新低于maxIdle。此外,一般还会对idle的最长时间的设定,比如超过30秒,idle连接留着也浪费,就关掉

而maxActive者,代表你能从这个pool中借出的最大连接的个数。在借出的时候,当池里有idle的,就用idle的,如果一个也没有,且未达到maxActive,就新建一个。假如已经达到maxActive这个数值后,根据不同的池种类和/或不同的设定,一般有以下几种:

1 直接抛错
2 让想要借出连接的线程等待一段时间,如果等不到,再抛错
3 每隔一段检查一次pool,直到有可用连接,否则一直等下去
4 永远可以拿到(视情况需要maxActive不设置或0或负)

------解决方案--------------------
断网后可重新启动tomcat服务器啊。。。如果有登陆界面,是否可以登陆?我是新手。
------解决方案--------------------