2010-12-01 3 views
1

Этот вопрос связан с this one.Когда ODBC закрывает соединение после выполнения SQLFreeHandle?

Проблема, с которой я сталкиваюсь, заключается в том, что наше приложение имеет ошибку, и оно оставляет незакрытую транзакцию на SQL. Я точно знаю, что соединение было выпущено с помощью SQLFreeHandle, но похоже, что ODBC поддерживает соединение, открывающее его повторное использование. Поскольку соединение остается открытым, транзакция не откатывается, и у меня есть блокировка.

Есть ли способ заставить ODBC отключить соединение и закрыть базовый сокет?

Заранее благодарен.

ответ

1

Как сказал Марк, пул соединений включен.

Обычно обертки для драйверов sql совершают обратный вызов до освобождения соединения обратно в пул.

Если вы, ребята, написали свой собственный драйвер ODBC (или его оболочку), вы можете подумать о том, чтобы просто модифицировать код dispose/close/release для соединения, если была открытая транзакция.

Смежные вопросы