1
我有简单的控制器N + 1选择generete CommunicationsException
@GetMapping("users")
List<User> getUsers() {
内我有代码:在几分钟之后
for(int i = 0; i<1000;++i)
userRepository.getOne(i);
有时我得到:
org.hibernate.exception.JDBCConnectionException: could not extract ResultSet
但对于95 %调用它的作品。
,如果我减少迭代次数:
for(int i = 0; i<100;++i)
userRepository.getOne(i);
它总是工作。
我的设置:
spring.datasource.url=jdbc:mysql://test.dailyrazor.com:3306/test?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=test
spring.datasource.password=test
代码只是为了说明问题,一个真实的例子来自于N + 1个选择
如何防止org.hibernate.exception.JDBCConnectionException:无法提取结果集?
你可以发布完整的stacktrace吗? – karelss
这听起来像您的数据库在连接打开很长时间或者导致负载过重或执行许多语句时关闭连接。完整的堆栈跟踪可能会证明这一点。你可能想和你谈谈dba。 –