现象:网站上线后,由于开始访问量不是很多,休息天一般都无人访问。发现星期一上班过来,打开网站,报页面找不到的应用错误。
调查原因,原来是DB链接失效,mysql 的数据库有一个全局变量,设定数据库链接有效期限的,默认为8小时。
如果超过这个时间,一直没有访问数据库的话,mysql会自动将其失效。
解决这个问题有两个方法:
1.如下,自动激活DB链接。
设置参考:DB的context.xml文件,添加下面5行属性。
参数设置:参考官网 http://commons.apache.org/dbcp/configuration.html
<?xml version="1.0" encoding="UTF-8"?>
<Context reloadable="true" antiResourceLocking="false">
<Resource name="jdbc/dbname"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://IP.ADD.RE.SS:3306/dbname?characterEncoding=UTF-8"
username="******"
password="******"
maxActive="500"
maxIdle="30"
maxWait="10000"
validationQuery = "SELECT 1"
testWhileIdle = "true"
timeBetweenEvictionRunsMillis = "3600000"
minEvictableIdleTimeMillis = "18000000"
testOnBorrow = "true"/>
</Context>
2.可以修改mysql DB的全局参数。
将默认原来8小时的时效期限更新为合适的时长。
wait_timeout:
The number of seconds the server waits for activity on an interactive connection before closing it. An interactive client is defined as a client that uses the CLIENT_INTERACTIVE option to mysql_real_connect().
interactive_timeout:
The number of seconds the server waits for activity on a noninteractive connection before closing it. This timeout applies only to TCP/IP and Unix socket file connections, not to connections made using named pipes, or shared memory.
问题:
如果在配置文件my.cnf中只设置参数wait_timeout=100,则重启服务器后进入,
执行: mysql> show variables like “%timeout%”
会发现参数设置并未生效,仍然为28800(即默认的8个小时)。
要同时设置interactive_timeout和wait_timeout才会生效。
set wait_timeout=100
set interactive_timeout=100
重启MySQL Server进入后,查看设置已经生效。
From: http://blog.csdn.net/quickgu/article/details/7179023
相关推荐
用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源. 我想此标题已经比较明确了。 在此说明一点,hibernate开发小组不推荐在hibernate下使用dbcp,如果一定要的话,请慎重考虑。
TOMCAT连接池DBCP,在server.xml中配置全局数据源详细的介绍,很有好用啊!!
tomcat6.0中配置JNDI的DBCP连接
spring与jpa整合 除去persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库
NULL 博文链接:https://sailinglee.iteye.com/blog/480715
JavaEE 使用Tomcat的自带DBCP管理数据源案例
springMVC+JAP整合彻底摆脱persistence.xml配置文件 spring与jpa整合 除去persistence.xml配置文件 使用属性文件 数据源dbcp访问数据库.
tomcat5.5 dbcp 的配置方式
tomcat-dbcp.jar
tomcat5.5 的dbcp配置
NULL 博文链接:https://yelang2009.iteye.com/blog/404120
用于实现DBCP连接池所用的JAR依赖文件,包括数据库驱动及创建连接池所需的其他依赖: * commons-collections * commons-dbcp2 * commons-logging * commons-pool2 * mysql-connector
<?xml version="1.0" encoding="UTF-8"?> <!-- - Application context definition for JPetStore's business layer. - Contains bean references to the transaction manager and to the DAOs in - ...
Tomcat 配置文件数据库密码加密,增加factory属性和修改context.xml文件中密码为密文,在lib文件中添加自定义的factory类 代码是jdk1.8版本,包含简单的加密类和http请求,如果使用简单的加密,不需要引用额外的lib...
DBCP、C3P0,JNDI 连接池配置使用,可以参考一下。
好不容易才找到的,在apache上可以下载tomcat的源码,但是没有tomcat-dbcp的源码,现在终于找到了,免费分享给大家,
DBCP数据库连接池配置文件
用于实现DBCP连接池所用的JAR依赖文件,包括数据库驱动及创建连接池所需的其他依赖: * commons-collections * commons-dbcp2 * commons-logging * commons-pool2 * mysql-connector 用于实现DBCP连接池所用的...
解决异常: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class ...applicationContext.xml:不同版本的jar对应不同的配置文件描述,重要参考!
一个简单的tomcat6.0+mysql5.5整合spring3.0和hibernate3.3的一个简单的实例,其中的datasource是tomcat JNDI配置的 type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://...