偶尔使JDBC开始事务失败,然后自动恢复

问题描述 投票:0回答:1

我们正在使用多个spring数据源来连接多个数据库。我们偶尔会收到以下错误,然后过一会儿所有的星星自动恢复工作]

o.h.e.j.s.SqlExceptionHelper.logExceptions:129 - SQL Error: 0, SQLState: null
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.TransactionException: JDBC begin transaction failed:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,250,518 milliseconds ago.  The last packet sent successfully to the server was 84,250,518 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
java database spring-boot apache-commons-dbcp
1个回答
0
投票
解决方案是添加验证查询并在spring应用程序属性文件上将testOnBorrow设置为true

validationQuery="select 1" testOnBorrow=true

autoRecconect = true在这种情况下无济于事

© www.soinside.com 2019 - 2024. All rights reserved.