DB2被中断,报错: [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014
在DB2的开发过程中,今日运行了一个执行时间较为长的sql语句。使用DB2服务端的控制台,运行该sql大约需要1分钟左右。而,在开发的程序里,运行30秒后,就被打断了,爆出异常 [DB2/NT] SQL0952N 由于中断,处理被取消 SQLSTATE=57014。找了网上好多的资料,都没有结果。只在一篇ADO开发DB2的文章里找到了线索:
解决方法一:我们开发时,只注意到了connection的连接时长。事实上,connection过期时间属性,已经被设置为0了,且只读。所以默认是永不过期的。
而对于我们每次SQL语句的执行,事实上是和DB2.DBCommand直接相关的。有意思的是,DBCommand也有个CommandTimeout 属性,且可读可写。将其设置为0后,就不会爆出处理被中断的问题了。呵呵!
解决方法二:db2cli.ini中添加
set QUERYTIMEOUTINTERVAL=0 in the db2cli.ini and try again