您的位置:首页 > 运维架构 > Tomcat

tomcat配置与数据库启动先后顺序

2015-07-18 00:00 609 查看
在一个项目中遇到过一个问题,由于网络不稳定本地开发环境tomcat和数据库经常自动断开连接,导致调试一个流程比较长的程序的时候很痛苦(流程比较长操作的时候还没有点到要调试的地方 tomcat和数据库断开了导致又要重启tomcat)

后来无意间想到之前项目中的一个问题由于tomcat频繁的自动探测是否和数据库断开连接,由于多台tomcat都去频繁的访问数据库导致数据库CPU过高,受到这个问题的启发,这里正好可以用到tomcat的这个特性解决我的这个频繁断开的问题。想想还是有点小激动的。

赶快搜索找到那个配置方法,然后测试居然ok!废话不多说下面是具体配置方法

tomcat中server.xml配置文件中配置以下参数。我们的数据库连接池是配置在server.xml中的类似

<Resource name="jdbc/mydb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost :1521:mydb"
username="oracle"
password="oracle"
maxActive="50"
maxIdle="20"
maxWait="10000" />

然后把下面两个参数加到上面的配置中即可
validationQuery="select count(1) from table"
testOnBorrow="true"

完整配置如下所示,如果数据库连接池是使用其他的方法配置的可以在百度或者谷歌搜索validationQuery 关键字应该可以找到解决方案
<Resource name="jdbc/mydb"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost :1521:mydb"
username="oracle"
password="oracle"
maxActive="50"
maxIdle="20"
maxWait="10000" validationQuery="select count(1) from table" testOnBorrow="true"/>
一、不配上述参数,数据库关闭着,启动tomcat,启动报错,连不上数据库。而tomcat启动完后访问系统,当然访问不了。此时再启动数据库,访问网站,成功,能够访问。
再手动把数据库停了,重新启动数据库,再访问系统,访问失败。

二、配置上述参数
在第一点的基础上无论以后是否重启数据库,都能访问系统,只要启动数据库就能访问,而tomcat不用做任何操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息