DB2查询似乎挂起

时间:2018-10-29 10:02:33

标签: java linux database db2 db2-luw

我们的平台是:

DB2 ESE 10.5.8运行于 IBM Power Linux Power 7与 红帽RHEL 6.9(圣地亚哥)

问题是:某些请求有时会“挂起”,因为它们似乎什么也没做,但仍然连接了几个小时(如果以前没有强行连接),并且不释放导致批处理作业的线程在这些请求被强制执行之前,请不要完成。

没有任何类型的锁(锁超时或死锁)。

db2top locks screen

db2top application details

这些图片显示了一个复杂的查询,可能来自dbvisualizer,但有时查询只是“从sysdummy1中选择当前模式”;但从未完成。

连接到数据库的应用程序是Websphere Application Server(WAS)8.5和dbvis(dbvisualizer)。 dbvis和dbvis都发生问题,但更多情况下发生。

应用程序处于uow等待状态,也就是说,一旦先前的工作完成,它就应该等待工作。 另一方面,我还没有解释这种连接如何导致批处理作业永远无法完成的原因,因为这正是我不知道并且希望知道的。

换句话说:“ UOW等待中”状态应用程序当前除了等待外什么都不做,显示查询未完成,这是一个悖论。

在这里您还可以看到UOW完成状态为“已提交”,据我了解,此应用程序句柄没有待处理的提交待决。

Application Snapshot
Application handle                         = 47954
Application status                         = UOW Waiting
Status change time                         = 10/29/2018 09:40:02.391805
Application code page                      = 1208
Application country/region code            = 0
Application name                           = dbvis
Connection request start timestamp         = 10/29/2018 09:38:33.022561
Connect request completion timestamp       = 10/29/2018 09:38:33.023248
Application idle time                      = 6 minutes 14 seconds
Previous UOW completion timestamp          = 10/29/2018 09:40:02.079211
Elapsed time of last completed uow (sec.ms)= 0.001282
UOW start timestamp                        = 10/29/2018 09:40:02.390511
UOW stop timestamp                         = 10/29/2018 09:40:02.391793
UOW completion status                      = Committed - Commit Statement
Workspace Information
Most recent operation                      = Static Commit
Most recent operation start timestamp      = 10/29/2018 09:40:02.391735
Most recent operation stop timestamp       = 10/29/2018 09:40:02.391793
Statement type                             = Static SQL Statement
Statement                                  = Static Commit
Statement start timestamp                  = 10/29/2018 09:40:02.391735
Statement stop timestamp                   = 10/29/2018 09:40:02.391793
Blocking cursor                            = NO

Statement type                             = Dynamic SQL Statement
Statement                                  = Fetch
Section number                             = 163
Cursor name                                = COL_DYNH
Statement start timestamp                  = 10/29/2018 09:39:57.544068
Statement stop timestamp                   = 10/29/2018 09:39:57.545429
Blocking cursor                            = YES