我的应用程序中有一个IBM DB2数据库.我们有一个每月的Java批处理过程,该过程使用
“load Replace”
sql命令.在此批处理过程中,每月将更新大约数百万条记录.
该批处理运行良好,在DB2 9.5版中没有任何问题.最近,数据库已更新为DB2版本V10.5.升级后,我们在批处理过程中面临以下问题. (代码无变化)
>在过程的中间发生了中断异常.
com.ibm.db2.jcc.am.SqlException:DB2 SQL错误:SQLCODE = -952,SQLSTATE = 57014,SQLERRMC = null,DRIVER = 3.69.24
>加载数据的数据在一段时间后也会变慢.最初,数据集以大约50,000行/秒的速度加载.一段时间后,它以1000行/秒的速度被加载.
>随着负载开始,CPU利用率也逐渐提高.
我们使用Java JDBC连接从输入表中选择数据,然后处理数据并将其存储在临时文件中.从文件中,我们使用load命令(从AIX服务器执行的Load命令)在输出表中插入数据. DB2 10.5中是否存在不支持此功能的任何升级问题或增强功能.将使用游标解决此问题.我也不确定在新版本的Db2中是否存在任何连接问题.
非常感谢您的帮助.请发表评论以获取所需的任何其他信息.
解决方法:
该错误是由于超时值不足引起的.处理大量数据时,应禁用超时值.
你可以用
Statement.setQueryTimeout()
官方的解决方案是在IBM site here上给出的
希望您喜欢编码!祝你有美好的一天!