我们有一个用 c# .net 3.5 编写的 Windows 服务,它读取/写入访问数据库。
我们小心地将所有 'new OleDbConnection()' 实例放在 'using' 子句中,并同样确保 OleDBCommand 已被处置。
然而在一个客户的服务器上,我们发现 connection.Open() 挂起超过 5 分钟,我们从日志中知道它发生在
System.Data.Common.UnsafeNativeMethods.IDBInitializeInitialize.Invoke(IntPtr pThis
我们知道那台机器上出现了两次问题,在这两种情况下,该位置同时挂着多个线程。在一种情况下,有问题的 3 个线程中有两个以 8 秒的时间差到达 Open() 调用。我不知道,可能第三个线程与其他线程之一同时到达调用。多个线程同时尝试打开连接这一事实是否会导致问题或其他原因?
谢谢,里奥