The last packet successfully received from the server was 32,399,735 milliseconds ago. The last packet sent successfully to the server was 0 milliseconds ago.
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1112)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3092)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2978)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3526)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1989)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2150)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5022)
at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:331)
at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:317)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:494)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:315)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:257)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:102)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:652)
at com.sinosoft.sepmis.inspection.service.InspectionDataServiceImpl$$EnhancerByCGLIB$$e65cc02b.saveInspectionData(<generated>)
at com.sinosoft.sepmis.util.ConnectionTelnet.execute(ConnectionTelnet.java:319)
at com.sinosoft.sepmis.util.InspectionUtil.inspectExecute(InspectionUtil.java:331)
at com.sinosoft.sepmis.util.InspectionUtil.timer(InspectionUtil.java:79)
at com.sinosoft.sepmis.quartz.QuartzJobTask.execute(QuartzJobTask.java:196)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529)
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2539)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2989)
... 23 more
org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.TransactionException: JDBC begin failed:
原因:数据库连接超时造成,
解决:
方法1、修改mysql数据库wait_timeout配置属性,将mysql数据库连接时间增长。
方法2、修改Hibernate配置
<!-- lang: xml -->
<prop key="hibernate.connection.autoReconnect">true</prop>
<prop key="hibernate.connection.autoReconnectForPools">true</prop>
<prop key="hibernate.connection.is-connection-validation-required">true</prop>
转载于:https://my.oschina.net/u/225084/blog/170614
分享到:
相关推荐
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...
为了优化性能,数据库连接池会根据预设的配置动态调整连接池大小,如最大连接数、最小连接数、空闲超时时间等。同时,它还提供了一些健康检查和监控功能,以便开发人员能够实时了解连接池的状态,及时发现并解决问题...
- 连接超时:设置适当的连接超时,防止因长时间未使用的连接占用资源。 - 错误处理:确保应用程序能够正确处理连接池中的异常情况,如连接失效或达到最大连接数。 - 监控与调优:定期监控连接池的使用情况,通过日志...
通过这种方式,我们可以在不违反数据库连接超时限制的情况下,持续保持活动连接。同时,`TimeManager`类提供了对多个定时任务的管理能力,使得系统更加灵活和可扩展。 请注意,实际的数据库连接心跳检测可能需要与...
4. 连接超时:为防止连接长时间未被释放导致资源浪费,可以设置超时机制,当连接空闲超过特定时间后自动回收。 5. 连接验证:在从池中获取连接时,可能需要进行验证,确保连接仍然有效,如检查网络状态、数据库...
6. **异常处理**:在数据库操作中,可能会遇到各种异常,如连接超时、数据不一致等。通用模块需要能够捕获和处理这些异常,确保程序的健壮性。 7. **多线程支持**:在多线程环境中,数据库连接通用模块需要能够处理...
- `connectionTimeout`: 连接超时时间,超过这个时间还没获取到连接,将会抛出异常。 4. **初始化和使用连接池** 在 Java 代码中,我们需要创建 `HikariConfig` 对象,加载配置并创建 `HikariDataSource` 实例。...
数据库连接池是一种管理数据库连接的技术,它预先初始化一定数量的数据库连接并保存在内存中,当应用程序需要连接数据库时,可以从连接池中获取一个已存在的连接,用完后再归还,而不是每次都新建和关闭连接。...
6. **异常处理**:在数据库连接出现异常时,连接池应有相应的处理策略,如自动重试、隔离故障连接等。 7. **连接池实现**:常见的开源数据库连接池实现有C3P0、DBCP、HikariCP、Druid等。自定义连接池需要考虑如何...
4. **异常处理与连接监控**:连接池还需要处理各种异常情况,例如连接超时、无效连接等。同时,还需要提供监控功能,便于了解连接池的状态。 #### 四、自定义数据库连接池的设计考量 在设计自定义数据库连接池时,...
数据库连接池是Java开发中非常重要的一个概念,它在处理大量并发访问数据库的应用场景中扮演着关键角色。本文将深入探讨数据库连接池的工作原理、重要性以及如何在Java中实现一个简单的连接池。 首先,数据库连接池...
- 连接超时时间:应用请求连接等待的最长时间,超过这个时间仍未获取到连接,将抛出异常。 - 验证间隔:连接池定期检查连接是否有效的时间间隔,无效连接会被移除并重建。 - 连接测试SQL:用于验证连接是否可用的SQL...
【数据库连接池】是软件开发中用于管理数据库连接的一种技术,旨在提高数据库操作的效率和资源利用率。在传统的JDBC数据库编程中,每个数据库操作都需要建立、使用和关闭数据库连接,这种模式存在明显的性能瓶颈和...
- **连接超时设置**:设置合适的连接超时时间,防止长时间未使用的连接占用资源。 - **定期检查和回收**:定期检查连接池中的连接状态,及时回收无效或过期的连接。 - **事务管理**:合理使用事务,减少数据库操作...
2. **参数设置文件**:这可能是配置文件,用于设定数据库连接池的相关参数,如最大连接数、最小连接数、超时时间、数据源类型等。这些参数对连接池的性能有直接影响,需要根据应用的实际需求进行调整。 3. **连接池...
5. 错误处理:连接池需要处理各种可能的错误,例如数据库连接失败、请求超过最大连接数等,通过异常或返回值向调用者传达错误信息。 在Linux环境下,常见的数据库API包括MySQL的C API、PostgreSQL的libpq以及ODBC...
C3P0的特点在于其良好的异常处理机制,可以自动检测并修复失效的数据库连接,同时提供了连接测试和自动关闭功能,确保连接的有效性。此外,C3P0还支持配置参数进行性能调整,如最小连接数、最大连接数、超时时间等。...
5. **配置参数**:DBCP允许开发者通过配置参数来调整连接池的行为,例如最大连接数、最小连接数、连接超时时间、验证查询等,以便适应不同规模的应用需求。 DBCP的使用步骤大致如下: 1. **添加依赖**:在项目中...