使用命令链时不需要的DB2超时

时间:2013-12-11 22:00:03

标签: c# sql .net db2

我正在使用带有命令链的.NET DB2驱动程序。

我首先打开一个 DB2Connection 并启动一个事务。然后我在我的连接上调用 DB2Connection.BeginChain 来启动批量插入。我用0作为 DB2Command.CommandTimeout 执行一堆准备好的语句。最后,我调用 DB2Connection.EndChain 并提交事务。

我希望有些插入因重复键错误而失败。我通过捕获 DB2Exception 并检查 DB2Exception.Errors 集合来捕获它。我知道哪一行失败了,因为我可以查看 Errors 集合中的 DB2Error.RowNumber

问题在于,当我调用 DB2Connection.EndChain 并且受影响的行号为负时,有时会捕获 DB2Exception

[IBM] [DB2] SQL0952N由于中断,处理被取消。 SQLSTATE = 57014

在DB2文档中搜索此错误似乎表明查询已超时。我没有看到任何与链接有关的信息。整个连锁过程是否超时或是个别查询的问题?如果是晚些时候,为什么我没有得到有效的行号?如果我的 DB2Connection.ConnectionTimeout 为0且我的 DB2Command.CommandTimeout 为0,为什么我会超时?

0 个答案:

没有答案