Soci Session не выпускает связь

Я использую soci для того, чтобы мое приложение взаимодействовало с базами данных, и в настоящее время я использую MySQL-сервер для тестирования. Я обернул SOCI в простой класс, где я вызываю session.open() в методе Connect моего класса

m_session.open(soci::mysql, connString);

Затем в деструкторе я вызываю метод close

m_session.close();

Но когда я использую класс несколько раз (создавая и уничтожая объекты этого класса), я обнаруживаю, что soci не может подключиться к серверу MySQL из-за ошибки слишком большого количества подключений. Я в замешательстве, так как я вызываю метод close для деструктора, я полагаю, что soci должен освободить соединение. Проверяя документы в соцсетях, я не вижу ничего, кроме close().

Есть ли способ заставить soci::session освободить соединение?

2 ответа

Решение

Я обнаружил, что мой деструктор не вызывается, потому что у меня было необработанное исключение в одном из моих методов класса. Я перепроектировал свой класс и обработал это исключение тоже. Теперь все хорошо!

Вы можете просто закрыть SOCI:Session с помощью функции soci::session.close()

Другие вопросы по тегам