有关SQLSTATE57014和57019的解决方法

一、SQLSTATE57014,SQL0952N由于中断而取消处理

 问题背景:近日对1400+万的数据进行select,在db2下是29秒。在sql里面添加处理逻辑后是1分40秒。在开发程序中操作同样的sql,执行过程中报错“SQLSTATE57014,SQL0952N由于中断而取消处理”。debug后问题出在数据源配置结果集上。

解决方法:

               1. 问题产生的原因是数据量大查询超时引起的,我们经常会将Connection的Timeout设置为0,其实在系统底层Connection的过期时间属性已经默认为0并且是只读状态;

                 .执行sql的状态和DB2的DBCommand相关,其属性值可读可写,只需要将CommandTimeOut的属性设置为0即可;

                 我们设置属性的时候要在数据源关闭的前提下进行设置,如果数据源已经开启,设置DBCommand并不会产生效果,“SQLSTATE57014,SQL0952N由于中断而取消处理”的问题在执行代码期间仍然会报错。

                2.db2cli.ini中添加  set QUERYTIMEOUTINTERVAL=0

二、SQLSTATE57019,SQL1117N 因为处于ROLL-FORWARD PENDING 状态,所以不能连接或激活数据库

 问题背景:系统数据库的备份是动态备份下来的,人工导入后打不开,报错。

解决方法 

             因为处于“ROLL-FORWARD PENDING”前滚悬挂状态,右键数据库选择前滚恢复,下面我们选择日志项,同时路径指向该数据库之前的日志目录,点击退出回滚状态,执行完成即可。

你可能感兴趣的:(sql)