com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 数据库报错
-- 查询mysql 数据库链接空闲时间持有最大空闲时间,单位为秒
SHOW VARIABLES WHERE VAriable_name = 'interactive_timeout';
-- 会出现wait_timeout与该参数意思相近,修改时,一起修改
SHOW VARIABLES WHERE VAriable_name = '%timeout';
-- 解决问题
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
Caused by: org.hibernate.TransactionException: JDBC commit failed
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:130)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:657)
... 29 more
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communications link failure during commit(). Transaction resolution unknown.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
-- 注意点
(1) 碰到这样的问题,先确定是否事务的开启后空闲时间太长导致事务的链接被回收掉了,只要你对数据库进行操作,就不算闲置,不会出现这个问题
(2) 网络出现问题,导致数据库无法链接
(3)
-- linux 系统查询文件中字符串所在文件行数
grep -A 10 -B 5 "查询数据字符串" catalina.out.2015-10-14.log |more
grep -rn "查询字符串" 文件名称
-- p表示行,不能省去
sed -n '起始行, 结束行p' catalina.out.2015-10-14.log
-- 进一步获取信息,可能是由于tomcat的catalina.out 日志文件过大,而服务器进行删除该日志的时候,导致tomcat卡住,使得tomcat获取到的connection被mysql服务器释放掉了,导致问题
-- tomcat解决大日志切分的方式
========================================================================================================================
解决方案1:(推荐使用)
(1) linux 中 配置 logrotate 进行日志记录并切分,好处在于可以转储并压缩日志
如果配置待研究,相信很快就能给出配置方式,请大家稍作等待,或自己有兴趣的也可以查阅一下资料自己进行研究
参考配置地址:http://blog.csdn.net/wanglipo/article/details/6934926
=========================================================== 实现 ==========================================================
解决方案2:
(1) 将tomcat下的大数据日志文件重新命名
(2) 在tomcat下日志文件下新创建一个相同记录日志文件名的空文件
(3) 移走tomcat下的大数据文件,移到tomcat外的其他的路径下
(4) 删除移到外部的日志文件
该方案解决了直接删除tomcat的日志大文件时锁定tomcat的线程问题,这样就可以解决删除时导致事务的获取链接时间超时问题
自动实现脚本执行
解决方案3:
系统上减少一些不必要的日志打印,减少服务器上的catalina.out文件的大小,加快服务器删除文件的时间,后面使用日志强制重新写入文件即可,问题引起原因就是日志文件过大,导致清理时时间过程,项目的访问受到影响导致
===========================================================转载blog========================================================
解决方案4:
解决Linux下Tomcat日志目录下的catalina.log日志文件过大的问题
由于Tomcat在默认情况下会将没有经过配置的web应用所产生的日志输出已经其本身的日志内容都输出到这个文件中,那么随着时间的推移,这个文件的尺寸将会越来越大,当需要检查日志内容时间会导致文件难以打开,而且同时tomcat依旧在不断的向文件中输入内容,这也会降低tomcat的性能。下面利用一个工具来将tomcat产生的catalina.out文件根据日期来分割,将每天产生的日志存放在一个独立的文件中,这样单个log文件就不会太大,而且过期的日志文件可以根据情况在不需要的时间删除掉,或者备份到其他地方。
这里需要一个工具叫cronolog,这个工具的作用是将标准输出中的内容重定向到文件,但是可以根据规则对文件命名,这样我们就可以将标准输出中的内容重定向到根据日期命名的log文件中了,然后只要将tomcat的日志输出指向标准输出就可以搞定问题了。下面是具体配置步骤
一、获取与安装cronolog工具
1. 到这里(http://cronolog.org/download/index.html)下载最新版本,本文编写时的最新版本是1.6.2版本。
2. 将下载好的文件解压缩,tar xvzf cronolog.tar.gz
3. 切换到解压缩之后的cronolog目录中
4. 初始化和编译安装
./configure --prefix=/usr/local/cronolog (这里--prefix后面的路径是你希望该工具的安装目标路径)
./make
./make install
二、修改tomcat的启动文件(tomcat/bin/catalina.sh)
1. 找到文件中的如下内容(注意:有两处)
org.apache.catalina.startup.Bootstrap "$@" start /
>> "$CATALINA_BASE"/logs/catalina.out 2&1 &
将其修改成如下格式:
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
2. 注释如下内容
#touch "CATALINA_BASE"/logs/catalina.out
然后重新启动tomcat就可以完成任务了
原地址:http://www.cnblogs.com/yjhrem/articles/3147686.html
# 在前面基础上需要修改的地方
2、修改catalina.sh
注释 第372行 ,结果为 # touch "$CATALINA_OUT"
修改第393,394行,更改的结果为 org.apache.catalina.startup.Bootstrap "$@" start 2>&1 | /usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
附加查看vim文件下的行数命令
:set nu
可查看行数
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 数据库报错的更多相关文章
- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决办法
09:00:30.307 [http-8080-6] ERROR org.hibernate.transaction.JDBCTransaction -JDBC begin failed com.my ...
- Oozie时出现Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure?
不多说,直接上干货! 问题详情 [hadoop@bigdatamaster oozie--cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -ru ...
- 异常解决:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
异常描述 这个异常通常有如下信息: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failu ...
- Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
很长的报错,截取 ERROR c.a.d.p.DruidDataSource - discard connection com.mysql.jdbc.exceptions.jdbc4.Comm ...
- Caused by: java.net.ConnectException: Connection refused/Caused by: java.lang.RuntimeException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
1.使用sqoop技术将mysql的数据导入到Hive出现的错误如下所示: 第一次使用命令如下所示: [hadoop@slaver1 sqoop--cdh5.3.6]$ bin/sqoop impor ...
- org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent succ
数据库 没有开启 连接失败 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause ...
- mysql 5.1超过默认8小时空闲时间解决办法(错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure)
报错: MySQL第二天早上第一次连接超时报错, com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications lin ...
- mysql连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
现象:客户端连接服务器端mysql是没问题的,所有都木有问题,应用程序配置也没问题,但是连接就抛异常: com.mysql.jdbc.exceptions.jdbc4.CommunicationsEx ...
- 问题记录——com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
最近在搞一个Spring boot + Mybatis + Mysql的项目,用Mybatis访问数据库时,报了如下的错误,先在网上搜索了,试了各种办法都不行, 奇葩的是,连接另外1个数据库又没问题. ...
随机推荐
- php中PCRE正则表达式分隔符的使用
转自:http://www.baiwar.com/post/the-use-of-php-pcre-regex-delimiter.html 在php5.3.0以前,PHP可使用两套正则表达式规则,一 ...
- ASCII转义字符
转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表( ...
- linux-虚拟机安装
第一步:下载 安装虚拟机! 链接: http://pan.baidu.com/s/1nuGLwsL 密码: 2qdy 第二步:镜像文件! 链接: http://pan.baidu.com/s/1nuG ...
- [Js]面向对象基础
一.什么是对象 对象是一个整体,对对外提供一些操作 二.什么是面向对象 使用对象时,只关注对象提供的功能,不关注其内部细节,比如Jquery 三.Js中面向对象的特点 1.抽象:抓住核心问题 2.封装 ...
- FF与IE对JavaScript和CSS的区别
一.FF与IE对JavaScript的区别 1. document.formName.item("itemName") 问题 说明:IE下,可以使用document.formNam ...
- 转: CSS中float和clear的理解
float:浮动,比如,默认的,我们知道,div是占满一行的,现在我们想把两个div显示在一行上,那怎么办呢<div style="width:100px;">1111 ...
- spring任务计划
小组 第一次小组会议结果 贾川和刘三龙负责这些任务: 1:4.11 搭配开发必要的环境,vs2010 2:4.12学习windows界面开发的基本知识 3:4.13-4.15 和小组成员讨论软件界面的 ...
- Java并发编程(一) 两种实现多线程的方法(Thread,Runnable)
Java中实现多线程的方法有两种: 继承Thread类和实现Runnable方法,并重写Run方法,然后调用start()方法启动线程.使用Runnable会比Thread要好很多,主要是以下三个原因 ...
- jstl c:choose>、<c:when>和<c:otherwise>标签
<c:choose>.<c:when>和<c:otherwise>在一起连用,可以实现Java语言中的if-else语句的功能.例如以下代码根据username请求 ...
- BT3入门之中文语言支持
汉化: 1.更新软件库:apt-get update 2.安装中文语言包:apt-get install language-support-zh apt-get install language- ...