Пахнет как устаревшее соединение в пуле, закрытое сервером.Точно сказать невозможно, поскольку это только симптом, который может иметь много первопричин.Однако это обычная проблема.
Существует явное свойство "autoReconnect", которое было включено в URL-адресе jdbc, и похоже, что оно должно решить все проблемы, верно?Исходное описание autoReconnect для MySQL:
Если этот параметр включен, драйвер будет выдавать исключение для запросов, отправленных по устаревшему или мертвому соединению, которые относятся к текущей транзакции, но будет пытаться восстановить соединение доследующий запрос выдан на соединение в новой транзакции
( источник )
Акцент мой.Так что это свойство, вероятно, не делает то, что вы думаете, что оно делает.Этот существующий вопрос переполнения стека еще раз подтверждает это.Я не знаю, изменилось ли что-то там в MariaDB, хотя я не могу найти какую-либо конкретную документацию об этом так быстро.
Лучший способ защититься от устаревших соединений в пуле - это разрешить пул соединений.сделайте это за вас, для чего вы можете определить свойства источника данных testOnBorrow , testOnConnect , testOnIdle , как показано в этом существующем ответе .testOnBorrow, вероятно, достаточно.Я процитирую это на тот случай, если ссылка прервется:
spring.datasource.tomcat.testOnBorrow=true
spring.datasource.tomcat.validationQuery=SELECT 1
Это предполагает умеренно свежую версию Spring Boot, не должно быть сложно перевести это на то, что вы используете Spring.