此问题与this one有关。
我遇到的问题是我们的应用程序有一个错误,它在SQL上留下了一个未关闭的事务。我确信连接已经与SQLFreeHandle一起发布,但看起来像某种程度上ODBC保持连接打开以重用它。当连接保持打开状态时,事务不会回滚,而且我正在锁定。
有没有办法强制ODBC关闭连接并关闭底层套接字?
提前致谢。
答案 0 :(得分:2)
听起来connection pooling已启用。 This article描述了如何在驱动程序级别关闭它。
答案 1 :(得分:1)
正如Mark所说,连接池已打开。
通常,在将连接释放回池之前,sql驱动程序的包装器会进行回滚调用。
如果你们已经编写了自己的ODBC驱动程序(或者它的包装器),你可以考虑修改连接dispose / close / release代码,以便在打开事务时进行回滚。