如何诊断db2" SQL0964C"数据库的事务日志已满

时间:2015-06-24 07:42:36

标签: db2

我知道如何解决问题,但我不知道如何找到问题的原因/来源(f.e. which statement)。在哪里(表,工具,命令)。

我可以在db2diag.log的摘录中看到一些内容吗?

2015-06-24-09.23.29.190320+120 ExxxxxxxxxE530     LEVEL: Error
PID     : 15972                TID  : 1           PROC : db2agent (XXX) 0
INSTANCE: db2inst2             NODE : 000         DB   : XXX
APPHDL  : 0-4078               APPID: xxxxxxxx.xxxx.xxxxxxxxxxxx
AUTHID  : XXX     
FUNCTION: DB2 UDB, data protection services, sqlpgResSpace, probe:2860
MESSAGE : ADM1823E  The active log is full and is held by application handle 
          "3308".  Terminate this application by COMMIT, ROLLBACK or FORCE 
          APPLICATION.

1 个答案:

答案 0 :(得分:5)

db2diag.log显示导致问题的应用程序的代理ID(应用程序句柄)(3308)。

如果您实时看到这一点(而不是事后查看db2diag.log),您可以:

  1. 使用db2top查看有关此连接的信息
  2. 查询sysibmadm.snapstmt(查看stmt_textagent_id
  3. 使用db2pd -activestatementsdb2pd -dynamic(键入AnchIDStmtUID
  4. 使用好的旧get snapshot for application
  5. 还有许多第三方工具也可以为您提供所需的信息。