首先,我想告诉你,我正在使用的程序已经编译好了,我无法查看源代码。
所以,这是我的问题:
应用程序成功打开了与特定数据库的31个连接。 当它尝试打开第32个连接时,所有连接都开始关闭,包括之前的31个连接。
说实话,我不知道为什么这个应用程序需要打开相同的2-3个表,但是在关闭所有连接之后,应用程序也会关闭。
17:41:38 004db680 DRIVER = {SQL 服务器}; SERVER = 192.168.1.8:1433; UID =用户; PWD =密码; DATABASE =数据库
17:41:38 004db680 08001 0000000e [Microsoft] [ODBC SQL Server驱动程序] [DBNETLIB]连接无效。 0x00000000 17:41:38 004db680 01000 0000000e [Microsoft] [ODBC SQL Server 驱动程序] [DBNETLIB] ConnectionOpen(ParseConnectParams())。 00000000
这是该应用程序的日志输出。
其他一些信息:
答案 0 :(得分:1)
在您的数据库上运行此语句,以查看您是否超出了最大连接数:
SELECT @@MAX_CONNECTIONS
答案 1 :(得分:0)
有些事情会浮现在脑海中
在应用执行之前和期间运行SQL事件探查器。你看到什么输出?也许发生了僵局?
以前是否有效,最近停止了工作?如果是这样,您是否对SQL应用了Service Pack或其他修复程序?
如果您的应用是多线程的,并且每个线程都在进行X连接,那么可以尝试将应用限制为在单个内核而不是多个内核上运行。这是一个肮脏的黑客,但它可能会有所帮助。
如果打开32x命令提示符窗口然后使用osql或sqlcmd实用程序打开32个SQL连接怎么办?听起来很傻,但如果上述情况至少没有结果,你可以看看它是否只是连接的数量,或者是否有其他事情正在发生。那个别的东西可能是