我正在使用链接服务器更新AS/400中的记录。它没有正确关闭连接。在AS/400侧,仍有许多连接处于空闲状态。在sql日志中,它显示:
异常_ACCESS_VIOLATION在0x0000000077BDE4B4 写入地址0000000000000024
并不是每次我们打开连接并更新AS/400端的文件时都会出现这种情况。我们更新了222条记录,仍然有210个连接打开。我预计会有222个。
我们正在从.NET应用程序调用一个存储过程。在我们正在执行的存储过程中:
在S100405D 执行(@as400Query)
其中as400Query是包含更新语句的字符串,S100405D是链接的服务器。AS/400中的记录正在更新,所以这不是问题。似乎在尝试关闭连接时出现了错误。此外,我还检查了链接服务器上的设置和连接超时=0(关闭)。不确定设置超时是否会关闭它们,或者这无关紧要,因为它无论如何都会引发错误。
如有任何帮助,我们将不胜感激!
Brian
您是否正在提交任何类型的代码来关闭AS端的连接?SQL服务器只会关闭其连接,在任何其他RDBMS上打开的任何其他连接都不会由SQL 管理
作为一名IBMi程序员,我不希望在存储过程调用过程中看到任何错误。如果参数不匹配,操作系统很少会抛出异常。最常见的是调用方(C#)使用VARCHAR,IBM方将其声明为CHAR。
除此之外,让IBM人员确保他们是最新的PDF。
作为一个风格问题,我不希望看到:
open connection
CALL proc
close connection
对于要更新的每一行。相反,我希望
open connection
loop
CALL proc
end loop
close connection