Я использую Java с SpringFramework для программирования баз данных на Mysql Server с использованием класса JdbcTemplate.
Использование org.apache.commons.dbcp.BasicDataSource
в качестве источника данных БД.
Иногда, когда соединения простаиваютв течение длительного времени CommunicationException
выдается со следующим сообщением:
The last packet successfully received from the server was XXXXX milliseconds ago.
Я не хочу обрабатывать эту проблему, добавляя параметр autoReconnect в соединение или добавляя свойство, которое будет выполнять select 1
перед каждым запросом, чтобы убедиться, что соединение правильно открыто.Я также не хочу касаться конфигурации сервера mysql и увеличивать значения тайм-аута.
Что я хотел бы сделать, это правильно обработать это исключение.
Я думал о перехватеCommunicationException
и просто повторять попытку до тех пор, пока она не преуспеет, и если она потерпит неудачу более чем в X раз, тогда выдается исключение, которое показывает, что повторная попытка в течение X раз не удалась.справиться с этой проблемой?
как моя идея?:) Может быть, в Springframe есть что-то, что автоматически делает это для меня, и я пропустил это?
любая информация будет принята с благодарностью.
спасибо!