Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何分析db2logtimeout并将其链接到我的应用程序_Logging_Db2_Timeout_Locking - Fatal编程技术网

Logging 如何分析db2logtimeout并将其链接到我的应用程序

Logging 如何分析db2logtimeout并将其链接到我的应用程序,logging,db2,timeout,locking,Logging,Db2,Timeout,Locking,我通过以下url成功创建了db2locktimeout: db2版本10.1.0 我还成功地在我的应用程序上模拟了一个locktimeout 但是,我无法理解db2locktimeout日志中的Lock Owner部分 日志如下: LOCK TIMEOUT REPORT Date: 17/05/2018 Time: 16:45:21 Instance: db2inst1 Database: JXD

我通过以下url成功创建了
db2locktimeout

db2版本10.1.0

我还成功地在我的应用程序上模拟了一个
locktimeout

但是,我无法理解
db2locktimeout
日志中的
Lock Owner
部分

日志如下:

LOCK TIMEOUT REPORT

Date:               17/05/2018
Time:               16:45:21
Instance:           db2inst1
Database:           JXDB01A
Member ID:          0


Lock Information: 

   Lock Name:      0008000800000000005D001952
   Lock Type:      Basic RECORD lock(DMS/IXM)
   Lock Specifics: (obj={8;8}, rid=d(0;93;25), x00000000005D0019)


Lock Requestor: 
   System Auth ID:          DB2INST1
   Application Handle:      [0-6433]
   Application ID:          *LOCAL.db2inst1.180517084432
   Application Name:        db2bp
   Requesting Agent ID:     28111
   Coordinator Agent ID:    28111
   Coordinator Partition:   0
   Lock timeout Value:      10000 milliseconds
   Lock mode requested:     ..X
   Application Status:      (SQLM_LOCKWAIT)
   Current Operation:       (SQLM_EXECUTE_IMMEDIATE)
   Lock Escalation:         No

   Context of Lock Request: 
   Identification:            UOW ID (1); Activity ID (1)
   Activity Information:      
      Package Schema:         (NULLID  )
      Package Name:           (SQLC2K26NULLID  )
      Package Version:        ()
      Section Entry Number:   203
      SQL Type:               Dynamic
      Statement Type:         DML, Insert/Update/Delete
      Effective Isolation:    Cursor Stability
      Statement Unicode Flag: No
      Statement:              update pHistory set companyName = 'jxLockTimeOutx2.2' where pHistoryId = 5522


Lock Owner (Representative):  
   System Auth ID:          JXUSR  
   Application Handle:      [0-6388]
   Application ID:          10.44.4.1.56870.180517083000
   Application Name:        db2jcc_application
   Requesting Agent ID:     26189
   Coordinator Agent ID:    26189
   Coordinator Partition:   0
   Lock mode held:          ..X

   List of Active SQL Statements:  Not available

   List of Inactive SQL Statements from current UOW: Not available

我理解锁请求者部分,但是,我不能理解锁所有者部分,我仍然可以知道我的应用程序的哪个部分是所有者。(虽然我知道,因为我是模拟它的人)。我的意思是,我如何才能知道它是从我的应用程序的哪个部分基于此日志的。

锁所有者是持有锁的连接,锁请求者正在等待它

锁所有者不必是您的应用程序,它可以是当前连接到数据库的任何其他应用程序

本例中的锁所有者是一个java应用程序(db2jcc_应用程序),运行在IP地址为10.44.4.1的主机名上,并使用帐户JXUSR连接到数据库。该连接对您的连接要更新的对象具有独占锁,因此您的连接必须等待,直到LOCKTIMEOUT过期,或者其他连接执行提交或回滚,或者被强制关闭

使用
db2 list applications show detail
查看所有连接,这将显示“应用程序句柄”和“应用程序ID”以及其他详细信息。您可以将这些信息与locktimeout报告文件中的信息相匹配

使用
db2getsnapshotforapplicationagentid 6388
查看db2是否可以告诉您有关锁所有者连接的更多信息(由lockreport锁所有者部分中的应用程序句柄(=agentid)[0-6388]标识)。 您还可以使用db2 get snapshot for application applid 10.44.4.1.56870.180517083000来获得相同的结果

特别是,您可以研究快照输出,以查看应用程序是否被卡住(查看最新的操作时间戳)。如果应用程序当前处于空闲状态并且已处于空闲状态很长时间,则可以使用命令
db2forceapplication(6388)
强制关闭它(通常最好让应用程序所有者或用户参与),该命令还将释放排他锁

您还可以使用SQL函数来查找此信息(有关详细信息,请参阅Db2知识中心),因此无需使用命令行

您还可以使用外部工具(而不是CLP)查看此信息(db2top、dsmtop、Data Server Manager和许多其他非IBM供应商的工具)。有些是文本工具,有些是GUI工具

另外,使用
db2level
命令查找DB2V10.1的补丁包。
如果您的fixpack不是“fixpack 6”,那么计划升级到这个版本——V10.1的最终fixpack,或者迁移到版本10.5或11.1,因为IBM仍然支持这些版本(不像V10.1在2017年9月30日失去支持)。

Hi@mao,对于第三段,是的,知道它,因为我是模拟它的人,因此,我认为它实际上来自一个java应用程序,并且来自哪个线程:)我尝试了
DB2GetSnapshot for application
,但它没有显示我想要的数据IL。然而,我尝试了另一种方法,它给了我想要的结果。在清单8中,您的问题与锁超时有关,但清单8与死锁有关(sqlcode-911的原因代码2)。DB2LUW为-911/-912/-913SQLCodes提供了不同的诊断选项,所有这些选项都适用于不同的用例。选择有效的方法。Stackoverflow不是教育或经验的替代品。嗨@mao,很抱歉我的观点。但是我使用的是清单8,然后我可以打印出锁所有者的详细信息。所以我认为它为我考虑了一个解决方案。对不起。我将尝试以更合适的方式使用StackOverFlow。