Когда ODBC закрывает соединение после выполнения SQLFreeHandle? - PullRequest
1 голос
/ 01 декабря 2010

этот вопрос связан с этим .

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

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

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 01 декабря 2010

Похоже, пул подключений включен. Эта статья описывает, как ее можно отключить на уровне драйвера.

1 голос
/ 01 декабря 2010

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

Обычно оболочки для драйверов sql выполняют откат до того, как освободить соединение с пулом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...