现象:
项目中使用连接池与Mysql连接,在8小时后,偶而会有数据库异常抛出
原因:
mysql的连接后,如果没有数据传输,在默认的8小时后,会自动断开连接。使用了数据连接池时,连接池并不知道其中的连接已经无效,还会分配已经失效的连接给服务,导致服务使用连接时发生异常。
解决:
方案一:
使用glassfish容器,利用glassfish自带的连接池管理功能中的自动校验。glassfish中的效验有多种,可以自行选择。个人比较喜欢使用custon-validation方式。使用方式:glassfish管理后台->Resources->JDBC->JDBC Connection Pools->自定义的连接池名->Advanced 找到Connection Validation并选中,Validation Method:选择custon-validation,save确认完成。
方案二:
使用c3p0连接池,因为c3p0连接池有一个 testConnectionOnCheckout 属性,将该属性值设置为ture则会每次从连接池中取出连接时验证连接的有效性,但这样会使连接的数据发送次数增加一倍。
方案三:
修改mysql的配置,将默认时间 增大,但该方法治标不治本
相关推荐
修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相关参数,红色部分 mysql> show variables like ‘%timeout%’; +————————...
可以直接通过设置来达到重连问题,方法很简单,里面有复现自动断开连接导致不能正常插入数据的方法,是自己没有积分所以才要积分
...
。。。
在mysql数据库中,如果一个连接8小时没有请求和操作,就会自动断开,从而导致一些基于数据库连接的应用程序,特别是 web 应用程序出错。 1、操作步骤 我的电脑-右击-服务-找到mysql服务 双击新窗口中 -》恢复...
mysql_windows_audit_plugin mysql_windows_audit_plugin是 MySQL 服务器的审计插件,它将连接和断开连接事件记录到 Windows 事件日志。 此插件仅在 MySQL Server 安装在 Microsoft Windows 操作系统中时有效。 按照...
11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理...
11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理 12.1 ...
11.2.6 从数据库断开连接 11.3 将新信息放入数据库 11.4 使用Prepared语句 11.5 使用PHP与数据库交互的其他接口 11.5.1 使用常规的数据库接口:PEAR MDB2 11.6 进一步学习 11.7 下一章 第12章 MySQL高级管理...
在MySQL数据库中,提供了一个session_track_transaction_info参数来提供解决方案。 因为官方文档上没有对该参数的说明,本文专门介绍该参数的可选值并验证了实际的影响。下面话不多说了,来随着小编一起看看详细的...
小队控制面板(SQCP)关于Squad控制面板( SQCP )是一个简单的开源解决方案,用于利用和管理用 ( )和 ( )编写的Squad游戏服务器。特征认证(登录)系统在线玩家管理(踢,禁,警告和团队切换玩家) 管理最近...
Data Abstract,基于得奖的RemObjects SDK之上,是一个创新的框架,用于创建强大并且可伸缩的多级数据库解决方案。利用它的交叉平台功能,以及从应用代码抽象细节和基础数据库的差别的能力,Data Abstract使您更加...
15.5 常见问题与解决方案 259 15.6 小结 261 第16章 数据库中的程序逻辑 262 16.1 数据库程序逻辑与PHP程序逻辑的分体 16.1 设计原则 262 16.2 数据库中的程序逻辑与数据的关系 262 16.3 存储过程的设计 263 16.3.1 ...
说明:断开与当前数据库的连接并会退出 用法:exit 6. 编辑脚本(edit/ed) 说明:编辑指定或缓冲区的sql脚本 用法:edit [文件名] 列子: 7. 运行脚本 (start/@) 说明:运行指定的sql脚本 用法:start/@ 文件名 ...
6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 ...