java - DB2 查询似乎挂起

标签 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 更常见。

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

换句话说:一个“UOW Waiting”状态的应用程序目前除了等待什么都不做,这表明一个未完成的查询正在运行,这是一个悖论。

在这里您还可以看到 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

最佳答案

关于java - DB2 查询似乎挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53043017/

相关文章:

linux - sh - 按分隔符分割字符串

mysql - 这个怎么写? Mysql Result(动态查表)

c# - 比较 Exchange 同步多个预留(UNIQUE 约束)

java - 在android studio 2.1中导入http包时出错

java - 错误 com.xuggle.ferry.JNILibraryLoader - 无法加载库 : xuggle-xuggler; version: 3;

java - 如何在 JTextPane 中搜索特定格式?

java - JOOQ 中的 POJO 映射与参数顺序无关

java - SparkLauncher 未启动应用程序

linux - 为什么在我的 .bashrc 中使用 `uname` 时出现错误?

c - 线程和进程的不同信号处理程序?可能吗