Db2 应用服务器CPU转到>;将近24小时后,同样的问题每天重复出现

Db2 应用服务器CPU转到>;将近24小时后,同样的问题每天重复出现,db2,websphere,database-deadlocks,lock-timeout,Db2,Websphere,Database Deadlocks,Lock Timeout,我在IBM WebSphere Application 8.5服务器和DB211.1之间工作了两年。自从应用服务器挂起一个月以来,dB CPU变为0,应用服务器CPU变为>80,并且在将近24小时后挂起,同样的问题每天重复出现。使用app server上的日志 今天的db2diag错误 2020-12-09-10.03.24.732486+120 I1234525159E610级别:错误 PID:5737 TID:139739072030464过程:db2sysc 0 实例:db2inst1节点

我在IBM WebSphere Application 8.5服务器和DB211.1之间工作了两年。自从应用服务器挂起一个月以来,dB CPU变为0,应用服务器CPU变为>80,并且在将近24小时后挂起,同样的问题每天重复出现。使用app server上的日志

今天的db2diag错误 2020-12-09-10.03.24.732486+120 I1234525159E610级别:错误 PID:5737 TID:139739072030464过程:db2sysc 0 实例:db2inst1节点:000 DB:WPJCR APPHDL:0-38161 APPID::ffff:x.42258.201209075007 UOWID:199活动ID:1 AUTHID:DB2INST1主机名:ERTUWCMDB1Az 教育ID:1760教育名称:db2agent(WPJCR)0 功能:DB2UDB,公共通信,sqlcctest,探测:50 消息:sqlcctestrc 数据#1:hextump,2字节 0x00007F1789BFCDE0:3600 6

2020-12-09-10.03.24.732661+120 I1234525770E601级别:错误 PID:5737 TID:139739072030464过程:db2sysc 0 实例:db2inst1节点:000 DB:WPJCR APPHDL:0-38161 APPID::ffff:x.42258.201209075007 UOWID:199活动ID:1 AUTHID:DB2INST1主机名:ERTUWCMDB1Az 教育ID:1760教育名称:db2agent(WPJCR)0 函数:DB2UDB,基本系统实用程序,sqeAgent::AgentBreathingPoint,探测:10 调用:DB2UDB、公共通信、sqlcctest RETCODE:ZRC=0x00000036=54

[11/3/20 6:42:13:596 EET]000006ad交易E J2CA0027E:A 调用XA资源适配器上的回滚时发生异常 来自数据源jdbc/wpjcrdbDS,在事务ID{XidImpl: formatId(57415344)、gtrid_长度(36)、bqual_长度(54)

数据(000001758C648AA7000000082A775800F8C220C5F6BDA92156EAE0BE31E28EA7605ADE800001758C648AA70000082A775800F8C220C5F6BDA92156EAE031E28EA7605ADE800000100000000000000000000000001) :com.ibm.db2.jcc.am.XaException:[jcc][t4][2041][12326][4.25.13] 执行XAResource.rollback()时出错。服务器返回XAER_NOTA。 ERRORCODE=-4203,SQLSTATE=null

一段时间后,dB CPU变为0,应用服务器CPU变为>80,并在近24小时后挂起,同样的问题重复出现


此死锁或锁定超时是由于数据损坏造成的吗???

没有看到任何其他应用程序服务器日志,您注意到

  • “将近24小时,问题重复出现”
  • sqeAgent::AgentBreathingPoint错误(请参阅IBM技术说明 更多信息)
  • “从2年开始工作。从一个月开始应用服务器挂起”

  • 这会让我在最近设置了连接超时的网络中查找更改,在24小时后关闭连接。这可能是由于更换路由器或升级设置不同的固件造成的。这种情况是否每天都发生在同一时间?如果是,是在应用程序从安静状态(如夜间)变为繁忙状态(如工作日开始)时发生的?
    根据您的回答,整个连接池似乎在一夜之间变得“过时”,这意味着这些连接没有被使用,网络超时导致它们与数据库服务器断开连接。您可以尝试将“最小连接数”的WAS数据源设置更改为0,将“未使用的超时”更改为12小时。这将允许连接池在服务器流量停止时通宵耗尽。早上开始加载应用程序时,将获得新的连接,从而避免错误。如果“最大连接数”设置非常大,则在连接池被填满时,您可能会遇到一些缓慢现象。

    请仔细检查Db2服务器上的Db2诊断文件(例如db2diag.log)和Db通知日志。如果出现死锁或超时,将在此处提及。您的问题不是关于编程,而是关于故障排除,为此,您需要有知道如何阅读和理解日志文件的合格人员。确定一个月前发生了什么变化也是很有帮助的。我更新了今天添加的dB2 diag,其中有2个错误级别:错误PID:5737 TID:139739072030464过程:db2sysc 0 WPJCR APPHDL:0-38161 APPID:UOWID:199 ACTID:1 AUTHID:DB2INST1主机名:ERTUWCMDB1Az EDUID:1760 EDUNAME:db2agent(WPJCR)0函数:DB2 UDB,公共通信,sqlcctest,探测:50消息:sqlcctest RC数据#1:Hexdump,2字节0x00007F1789BFCDE0:3600 6。欢迎使用SO。请在发帖之前花点时间正确格式化您的问题。这可能比WAS更与DB2相关,但链接到WAS performance debug:它可以帮助您收集WAS进程的线程转储。告知哪些WAS线程使用最多的CPU,以及是否存在死锁。在Windows上,Jython脚本用于收集线程转储:将以下内容放在名为ThirtyThreadDumps.py的文件中(将正确的服务器名称替换为“server1”):jvm=AdminControl.completeObjectName('type=jvm,process=server1,*'),用于范围(30)内的x:AdminControl.invoke(jvm,'dumpThreads'))Sleep(30)这发生在每天大约相同的时间,每天移动+1到+2小时,因此它每天移动的时间不相同。是的,它从安静状态开始移动到忙碌状态