DB2 JDBC驱动程序(类型4)挂起在Execute()上

时间:2012-03-20 12:47:38

标签: java jdbc db2 websphere execute

我正在DB2服务器上使用JDBC连接执行一系列sql语句。在简单的sql:execute()的最后DELETE FROM MYTABLE上,即使表中包含单个记录,线程也会挂起很长一段时间。

我使用的应用程序服务器是WAS。我想知道这是否是特定于WAS和DB2组合的问题,因为相同的代码适用于其他环境。

有人知道这里发生了什么吗?

2 个答案:

答案 0 :(得分:3)

您是否直接从CLP发出命令?这可能是其他问题,例如:

  • 事务日志问题:要删除的行数很多,这需要时间。此外,事务日志已达到限制,并且数据库不执行回滚但等待由其他事务释放的空日志。
  • 锁定问题(并发):您尝试删除的某些行在其他事务中具有锁定,应用程序必须等待释放它们(锁定等待)

另外,请尝试频繁提交。

答案 1 :(得分:1)

删除数据库中的行可能是一项糟糕的工作:不要忘记数据库服务器将在ROLLBACK的情况下记录表的所有数据。然后我假设问题来自数据库,特别是如果表有很多行。

您是否尝试在交互式环境中自行手动运行所有SQL请求?