Java db2错误SQLCODE = -913 SQLSTATE = 57003 SQLERRMC = schema.table; table,driver = 4.1xxx

时间:2015-06-26 01:07:31

标签: java jdbc db2

我编写了一个简单的Java应用程序,它基本上执行一个包含4个连接表的SELECT SQL语句。然后我执行SQL语句并将其保存到resultSet。当我循环遍历resultSet时,在300K +的200K +记录中,我收到此错误消息:

  

SQLCODE = -913 SQLSTATE = 57003 SQLERRMC = schema.table; table,driver = 4.1xxx

根据我到目前为止所读到的内容,这意味着它出现了死锁错误。是否有可能在如此小的结果集(300K)和select语句上发生?

1 个答案:

答案 0 :(得分:0)

当两个或多个事务处于锁定等待的循环中时发生死锁,并且锁定超时不会中断循环。默认情况下,在表或索引扫描期间执行行锁定时,DB2会在确定行是否符合查询条件之前锁定每一行。您的表或索引扫描时间过长,还有其他未决事务。

这是一篇关于DB2锁的精彩文档。 http://www.ibm.com/developerworks/data/library/techarticle/dm-0509schuetz/还有一些关于如何解决锁定问题的建议。