Я написал веб-сервер с использованием Delphi и компонента Indy TIdHttpServer. Я управляю пулом соединений TAdoConnection с базой данных MySql. Когда поступает запрос, я запрашиваю у своего пула доступные соединения с базой данных. Если он недоступен, создается новый TAdoConnection, который добавляется в пул.
Проблемы возникают, когда соединение становится «устаревшим» (т.е. оно не использовалось довольно долгое время). Я думаю, что в этом случае запрос приводит к ошибке «MySql ушел».
Есть ли у кого-нибудь способ обойти это? Или я сам справился бы с этим одним из следующих способов:
- Написание потока, который будет периодически «обновлять» все соединения.
- Отслеживание последнего активного запроса и, если он слишком старый, откажитесь от подключения и освободите его.