【发布时间】:2015-04-02 11:38:16
【问题描述】:
我的问题是,在我的多线程应用程序中,SQL Anywhere 12 驱动程序抛出 NullReferenceExceptions。异常总是在不同的点抛出,但总是在打开连接的过程中。最多有 5 个打开的连接。堆栈跟踪如下:
我不知道为什么会这样。
还有其他人有类似的问题吗?目前我不知道。
编辑:
该错误实际上是不可重现的,因为有时应用程序可以正确运行两个小时或一天,有时只运行 10 分钟。
【问题讨论】:
-
哪个版本 12.?您使用的是 SQL Anywhere ADO.Net 驱动程序吗?
-
@NeillVerreynne 我们使用 SQL 12 数据库,但使用 SQL 16 驱动程序。驱动程序有以下版本:
16.0.0.20524。数据库有以下版本:12.0.1.3579 -
好吧,当多个线程尝试分配/关闭多个连接池时,SAConnectionPoolManager 不是线程安全的。这在版本 16.0.0.1431 和 12.0.1.3851 中已修复(他们说)。
-
@NeillVerreynne 如果您从您的评论中做出回答,我会接受。问题应该得到解决。我发现我们的一位客户使用
3994,他们没有问题:) 非常非常非常感谢... -
:) 不客气,很高兴它的工作@BendEg
标签: c# multithreading .net-4.0 nullreferenceexception sqlanywhere