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。 –