我的项目用了 struts2 + hibernate,数据库是mysql,连接方式是采用tomcat的数据库连接池JNDI,运行后经常是隔一段时间就连不上数据库,需要重启TOMCAT才能正常运行,日志记录如下:
严重: Servlet.service() for servlet default threw exception
java.sql.SQLException: No operations allowed after connection closed.Connection was implicitly closed due to underlying exception/error:
** BEGIN NESTED EXCEPTION **
com.mysql.jdbc.CommunicationsException
MESSAGE: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Software caused connection abort: socket write error
STACKTRACE:
java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2692)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2621)
...略
后来发现问题所在,原来是长时间不用这个连接后,JDBC会自动将连接释放,但hibernate用的数据库连接池还认为连接是可用的,于是访问就出现了问题,只有重新启动tomcat方可连上。
找到原因了,我的hibernate使用的是内置的连接池,而hibernate内建连接池非常不完善,会有"8小时连接无效"的问题,改用c3p0连接池后就好了。
分享到:
相关推荐
标题:“Software caused connection abort: recv failed” 描述:“Software caused connection abort: recv failed” 知识点解析: ### 背景介绍 “Software caused connection abort: recv failed”这一错误...
解决TestNG单元测试报错Software caused connection abort: socket write error
我真的佛了,我把电脑都重装系统了,没想到还是有问题,最终我找到了解决方案。 (我指的重装系统就是win10自带的功能,可能...Network error: Software caused connection abort 原创文章 6获赞 8访问量 726 关注
### 错误解析:Caused by: android.system.ErrnoException: write failed: ENOSPC (No space left 在Android开发过程中,可能会遇到“Caused by: android.system.ErrnoException: write failed: ENOSPC (No space ...
4. **java.net.SocketException: (Connection reset 或 Connect reset by peer: Socket write error)** 这两种异常都表示连接已断开。可能的原因是一端关闭了Socket,而另一端仍在尝试读写。处理这类异常需要检测到...
Oracle数据库是企业级应用广泛使用的数据存储系统,其稳定性和高可用性至关重要。本文将深入探讨Oracle数据库的常见故障类别及规划,旨在帮助管理员更好地预防和处理潜在的问题,确保数据库系统的顺畅运行。...
Caused by: java.net.UnknownHostException: openapi.alipay.com
"java.net.SocketException Connection reset 解决方法" 在 Java 编程中,SocketException 是一种常见的异常,特别是在网络编程中。Conexion reset by peer 是一种特殊的 SocketException,它发生在客户端和服务器...
专题资料
"解决 Nginx 访问慢和 accept() failed 错误的方法" 在本文中,我们将讨论 Nginx 访问慢和 accept() failed 错误的解决方案。这个问题通常是由于 Nginx 的连接数超过了系统设定的最大值造成的。...
- **Socket error #10053 - Software caused connection abort**:软件导致连接中断。 - **Socket error #10055 - No buffer space available**:没有可用的缓冲空间。 - **Socket error #10056 - Socket is already...
"MongoDB 安装出错解决方法" MongoDB 是一款非常流行的 NoSQL 数据库管理系统,但是在安装过程中经常会遇到各种错误,特别是在自定义安装路径时。下面我们将详细介绍 MongoDB 安装出错解决方法。...
主要介绍了java.net.ConnectException: Connection refused问题解决办法的相关资料,需要的朋友可以参考下
在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
NavicatPremium 最新版下载安装文件,解决ssl连接失败问题
Android Caused by: java.lang.ClassNotFoundException解决办法 出现问题: 08-13 18:29:22.924: E/AndroidRuntime(1875): Caused by: Java.lang.ClassNotFoundException:XXXXX in loader dalvik.system....
"java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver" 解决方案 [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. 解决了jsp连接 sql server 2000的问题
Socket Error 10053 - Software caused connection abort Socket Error 10053是指软件导致连接中断,这种错误通常是由于软件错误所致。解决方法是检查软件,确保它们正确。 Socket Error 10054 - Connection reset...