Утечка памяти при использовании соединителей SQLite и MySQL ODBC на одном компьютере

#mysql #sqlite #odbc

#mysql #sqlite #odbc

Вопрос:

Это самая неприятная ошибка, которую я когда-либо видел. У меня установлена последняя GA-версия соединителей SQLLite и MySQL ODBC, vb.net, vs2010. У меня есть две программы, одна, которая действует как сервер и обращается к базе данных SQLLite, и клиент, который запрашивает серверную программу и сравнивает результат с базой данных MySQL. Клиент-сервер обменивается сериализованным XML через TCP, поэтому это не влияет на вещи.

При запущенной серверной программе я могу запускать запросы MySQL весь день, а использование памяти клиентской программой не меняется. Однако, как только я запускаю команду на сервере, сервер обращается к базе данных SQLite и возвращает ответ, с этого момента КАЖДЫЙ запрос MySQL, выполняемый клиентом, приводит к увеличению использования памяти клиентской программой на 60-100 КБ, пока память не заполнится и клиент MySQL не завершится сбоем с сообщением «Не хватает памяти» или «Соединение закрыто». сообщение.

Я пытался заставить сервер явно закрывать соединение SQLite после каждого запроса, я пытался заставить клиентское программное обеспечение закрывать соединение MySQL после каждого запроса, и никаких изменений нет. Я попытался освободить пул объектов в OdbcConnection, явно вызвав dispose, все, что я мог придумать, чтобы заставить клиента освободить память, используемую соединителем MySQL ODBC, но ничего не работает. Единственное, о чем я могу думать, это о том, что, возможно, соединитель SQLite и MySQL плохо работают вместе? Помогите!

Комментарии:

1. Это хороший вопрос, но, пожалуйста, вернитесь к некоторым из ваших предыдущих вопросов и примите ответ. Это побудит других ответить на этот вопрос.

2. Хорошо, извините, я не понимал, что это был шаг, который я должен был предпринять, чтобы закрыть вопрос.

3. Определенно существует какой-то конфликт. Я переписал весь код на сервере, чтобы он использовал базу данных MySQL, и я все еще получал то же поведение. Это не было, пока я не удалил ссылку на System.Data.Sqlite сам, что это прекратилось.