适用于 OLE DB 的 .NET Framework 数据提供程序会使用 OLE DB 会话池自动将连接放入连接池中。当应用程序断开连接时,连接并未真正断开,而是会保持一段时间。当应用程序重新打开一个连接时,ADO/OLE DB 会认出该应用程序使用了完全相同的连接字符串并将重新使用打开的连接。例如,如果应用程序执行 "打开/执行/关闭" 100 次的操作,则其中只有一次真正的打开和一次真正的关闭。最终的关闭发生在空闲时间达到 1 分钟后。
如果连接被外部手段终止(例如被像 Sybase Central 这种管理工具强行断开),ADO/OLE DB 要到下一次与服务器交互时才会得知连接断开了。在实施强行断开之前应当仔细考虑。
控制连接池的标志是 DBPROPVAL_OS_RESOURCEPOOLING (1)。可以在连接字符串中使用一个连接参数来将此标志关闭。
如果在连接字符串中指定 OLE DB Services=-2,连接池将被禁用。下面是示例连接字符串:
Provider=SAOLEDB;OLE DB Services=-2;... |
如果在连接字符串中指定 OLE DB Services=-4,连接池和事务征用将被禁用。下面是示例连接字符串:
Provider=SAOLEDB;OLE DB Services=-4;... |
在禁用连接池的情况下,若应用程序频繁地用相同的连接字符串打开和关闭连接,性能将大受影响。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |