使用jdbc模板更新表时DB2中的死锁

时间:2017-12-10 05:30:23

标签: java jdbc db2 jdbctemplate

我试图在AS400 DB2中为多行更新表。当我在工作台上测试时,此查询工作正常。当我从jdbc模板使用相同的查询时,它会创建死锁并在表上进行锁定。这可能是什么问题?这是我的代码。

QUERY

UPDATE <table name> SET status= 'CLOSED' WHERE PROCESSID IN ('ABC1243', 'DTH4666');

使用代码。

public void updateStatus() {
    try { getJdbcTemplate().update("UPDATE <table name> SET status= 'CLOSED' WHERE PROCESSID IN ('ABC1243', 'DTH4666');}
    catch (Exception e) { logger.error(e); throw e; }       
}

任何想法对我都非常有用。

1 个答案:

答案 0 :(得分:-1)

1.您的数据库连接是否已打开或关闭自动提交?  2.在DB2中,当您触发选择查询时,存在死锁的可能性     在同一事务中更新查询  3.如果关闭了自动提交,并且您已启动了选择查询     然后尝试提交或回滚该事务,然后触发更新     查询。它应该工作。

如果您仍面临上述问题,请与我联系。