当前位置:首页 > 开发 > 数据库 > 正文

[转] MYSQL DBCP JNDI TOMCAT6 隔天或超过8小时访问 DB链接失效 报错 如何来配置context.xml文件

发表于: 2015-04-02   作者:107x   来源:转载   浏览:
摘要: 现象:网站上线后,由于开始访问量不是很多,休息天一般都无人访问。发现星期一上班过来,打开网站,报页面找不到的应用错误。 调查原因,原来是DB链接失效,mysql 的数据库有一个全局变量,设定数据库链接有效期限的,默认为8小时。 如果超过这个时间,一直没有访问数据库的话,mysql会自动将其失效。 解决这个问题有两个方法: 1.如下,自动激活DB链接。 设置参考:DB的context.xml文件

现象:网站上线后,由于开始访问量不是很多,休息天一般都无人访问。发现星期一上班过来,打开网站,报页面找不到的应用错误。
调查原因,原来是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

[转] MYSQL DBCP JNDI TOMCAT6 隔天或超过8小时访问 DB链接失效 报错 如何来配置context.xml文件

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
来源:http://xiaoxinshome.iteye.com/blog/616965 本文基于tomcat6.0.20版本 1.context.xml方式 在
1、tomcat6 数据源配置(server.xml方式和context.xml方式) 本文基于tomcat6.0.20版本 1.context.x
最近在看数据库方面的内容,总结了一下程序中获取数据库连接的方式。比较流行的两种方式是采用JNDI
本文提供了对c3p0与DBCP连接池连接MySql数据库时, 8小时内无请求自动断开连接的解决方案。首先介绍
想必大家在用MySQL时都会遇到连接超时的问题,如下图所示: 就是这个异常(com.mysql.jdbc.exception
长时间不操作页面后,再操作时程序就会报错,异常如下: com.mysql.jdbc.exceptions.jdbc4.Communic
Ruby是如何来的 Ruby 的发明者松本行弘 Yukihiro “matz” Matsumoto ,混合了他喜欢的语言(Perl、
1.Ctrl+R 打开DOS窗口 2.键入 cd\ 回车进入C盘根目录 3.进入mysql bin目录下 操作mysql命令 4.输入
一直困惑于以下几个问题: 在客户端通过JNDI获得的究竟是原对象引用,还是序列化之后的另一个对象,
环境:windows 2008 + sqlserver 2008 一 安装 mysql-connector-odbc-5.2.5-winx64.msi 必须安装5.2
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号