【发布时间】:2012-11-03 15:51:32
【问题描述】:
首先我想告诉你,我正在使用的程序已经编译,我无法查看源代码。
所以,这是我的问题:
应用程序成功打开了大约 31 个与特定数据库的连接。 当它尝试打开第 32 个连接时,所有连接都开始关闭,包括之前的 31 个连接。
说实话,我不知道为什么这个应用程序需要对同一个 2-3 个表打开这么多连接,但是在所有连接都关闭后,应用程序也会关闭。
17:41:38 004db680 驱动程序={SQL 服务器};SERVER=192.168.1.8:1433;UID=user;PWD=password;DATABASE=数据库
17:41:38 004db680 08001 0000000e [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]连接无效。 0x00000000 17:41:38 004db680 01000 0000000e [微软] [ODBC SQL Server 驱动程序][DBNETLIB]ConnectionOpen (ParseConnectParams())。 0x00000000
这是该应用程序的日志输出。
一些附加信息:
- SYN 攻击保护禁用时出现同样的问题
- 数据库最大连接数为 30k+
【问题讨论】:
-
如果应用程序是用托管代码编写的,您可以尝试反编译它。我发现 Telerik 的 JustDecompile 效果很好。
-
能否提供您正在使用的连接字符串?
-
我认为当第 32 个连接失败时,您的应用程序会抛出一个未处理的错误,它会关闭并首先关闭所有其他连接,所以您的问题是第 32 个连接失败可能来自最大连接达到 ;)。
标签: sql-server