数据库死锁了,tomcat日志有些不明白.请教各位大大

问题描述

锁住的进程时间是16:10分左右,tomcat错误报告里边只有这个 是这个时间段的.基本上就判断是这个.但是有些看不懂,是哪里出了问题。。“/pagenotfound.html”是我定义的一个404错误跳转页面。2011-11-18 16:12:20 org.apache.catalina.core.StandardHostValve@7038b9: Exception Processing ErrorPage[errorCode=404, location=/pagenotfound.html]ClientAbortException: java.net.SocketException: Connection reset by peer: socket write errorat org.apache.coyote.tomcat5.OutputBuffer.doFlush(OutputBuffer.java:331)at org.apache.coyote.tomcat5.OutputBuffer.flush(OutputBuffer.java:297)at org.apache.coyote.tomcat5.CoyoteResponse.flushBuffer(CoyoteResponse.java:537)at org.apache.coyote.tomcat5.CoyoteResponseFacade.flushBuffer(CoyoteResponseFacade.java:238)at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:303)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:147)at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)at java.lang.Thread.run(Unknown Source) 问题补充:283433775 写道

解决方案

这么说问题就很明显了,conn是必须关闭的,不管你是在什么地方,try里面还是在finally里面必须要有的,如果是连接池,也要放回连接池啊,有的连接池有机制,有时间片的限制,就是有future的特性,如果在一定时间长度还没用完就会收回,不知道你的是什么情况,还有就是有的时候,如果你不是连接池,conn因为方法异常没执行完,但是这个conn没有释放,因为你的session还在或者是里面的statment还在,或者rs还在用,导致还是有引用指向conn,这样这个对象的引用数不是0,这样在jvm进行GC的时候,不会对内存的回收,这个对象一直占用连接,导致不会释放连接。
解决方案二:
conn显然要关闭。至少要放回池里。不调用关闭,如何放回池里?ClientAbortException: java.net.SocketException: Connection reset by peer: socket write error 客户端请示非正常关闭?比如只是post一部分数据突然强行关闭?
解决方案三:
非正常执行连接没断,锁没有释放吧,然后就锁住了。
解决方案四:
检查你的代码,是不是数据库没有执行完,提前关闭数据库连接了。

时间: 2024-11-03 22:40:13

数据库死锁了,tomcat日志有些不明白.请教各位大大的相关文章

利用Spark解析Tomcat日志,并将统计结果存入Mysql数据库

本文试图实现的需求场景为:以学习Spark知识点为目的,编写Scala利用Spark解析800M的tomcat日志文件,打印一段时间内ERROR级别记录的前10行,统计每分钟的日志记录数,并将统计结果存入mysql数据库中.之前曾用JAVA写过一次同样的处理逻辑,但在学习了Scala之后,真的感觉在计算方面Scala要比JAVA方便的多.没有学习Scala语言的同学速度速度了啊-- 技术要点 将日志文件写入HDFS中,相对路径PATH为"nova.log" 注意JAVA堆栈异常日志的处

Mybatis update数据库死锁之获取数据库连接池等待_java

 最近学习测试mybatis,单个增删改查都没问题,最后使用mvn test的时候发现了几个问题: 1.update失败,原因是数据库死锁 2.select等待,原因是connection连接池被用光了,需要等待 get: 1.要勇于探索,坚持就是胜利.刚看到错误的时候直接懵逼,因为错误完全看不出来,属于框架内部报错,在犹豫是不是直接睡 觉得了,毕竟也快12点了.最后还是给我一点点找到问题所在了. 2.同上,要敢于去深入你不了解的代码,敢于研究不懂的代码. 3.距离一个合格的码农越来越远了,因为

2. SQL Server数据库状态监控 - 错误日志

原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志

Exchange 2007队列数据库、队列事务日志文件超过临界值(阈值)导致无法接受

Exchange 2007队列数据库.队列事务日志文件超过临界值(阈值)导致无法接受邮件解决方案 前天,客户Exchange 2007邮件系统突然出问题了.具体表现如下: 只能发邮件,不能收邮件.OUTLOOK中点击"发送和接收"测试,只有正在发送,没有正在接收状态. 查看日志发现如下提示: The Microsoft Exchange Transport service is rejecting message submissions because the available di

SqlServer定时备份数据库和定时杀死数据库死锁解决

原文:SqlServer定时备份数据库和定时杀死数据库死锁解决 上周五组长更我说了一句要杀死数据库的死锁进程,因为自己对数据库不是很熟悉,突然组长说了我也就决定一定要倒腾一下,不然自己怎么提高呢?现在不研究,说不定下次还是要研究呢,倒腾出来了就可以在下次用到了,后来组长又补了一句:"还有定是备份数据库的问题要解决",说干就干. PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库  因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开

linux tomcat日志过大处理办法

问题描述 linux tomcat日志过大处理办法 请给一个详细的教程,谢谢了.之前找过一个cronolog的教程,但是找不到教程所说的代码. 解决方案 用logrotatehttp://stephen830.iteye.com/blog/2159024 解决方案二: 这里有个文章可以参考下:http://www.cnblogs.com/yjhrem/articles/3147686.html

tomcat 日志文件 运行正常

问题描述 tomcat 日志文件 运行正常 0:0:0:0:0:0:0:1 - - [16/Feb/2016:11:27:59 +0800] "GET /xuxunews/god/login HTTP/1.1" 404 987 状态码404,后的数字987是什么意思 解决方案 最主要还不是404嘛,应该排查下这个get请求把

sql server 数据库操作报错“日志不可用”

问题描述 sql server 数据库操作报错"日志不可用" 在操作数据库时查询信息操作没有问题,但增删改操作时就会报下面的错误请问是什么原因: 消息 9001,级别 21,状态 1,第 2 行 数据库 'hrtest1' 的日志不可用.有关相应错误消息,请查看事件日志.修复所有错误后重新启动数据库. 解决方案 SQL Server 数据库操作关于SQL Server数据库日志已满的解决方法SQL Server 数据库操作总结(sql语法的使用) 解决方案二: recovery下数据库

centos下tomcat日志文件乱码

centos下tomcat日志文件乱码 ,最近装了centos7.0准备用来搭建web服务器. 遇到一个问题折腾了很久: 在tomcat日志文件中的中文全部为?号,并不是因为linux的编码问题引起的, 而是因为启动tomcat的时候需要设置 什么是 centos下tomcat日志文件乱码 最近装了centos7.0 准备用来搭建web服务器.遇到一个问题折腾了很久: 在tomcat日志文件中的中文全部为?号,并不是因为linux的编码问题引起的,而是因为启动tomcat的时候需要设置java虚