【问题标题】:CMD.exe consumes all the CPU, blocking other CMD.exe to executeCMD.exe 消耗所有CPU,阻塞其他CMD.exe 执行
【发布时间】:2013-03-01 16:11:29
【问题描述】:

我们在 Windows 中有一些批处理脚本 (.bat) 来执行数据库的“备份”和“归档日志”。定期从 Tivoli 调用这些脚本。

对于每个执行的脚本,该进程创建一个子会话以加载 DB2cmd 环境,以便执行 db2 命令并退出。

daily.bat

call db2cmd hourly.cmd

脚本的内容是这样的:

db2_job_saveddaily.cmd

db2 -fE:\DB2\scripts\tmp\db2_job_savedbhourly.db2 -zE:\DB2\scripts\tmp\db2_job_savedbhourly.log 
exit

db2文件的内容是(不过不重要,因为执行正确)

db2_job_saveddaily.db2

archive log for database ICMNLSDB

我们遇到了这些脚本的问题,我认为这与 exit 有关。在一次执行中,脚本冻结,并开始消耗整个 CPU(见附图)。在此行为之后,我们无法从 CLP 执行任何其他 DB2 命令。 我们杀死了所有 CMD.exe 和 db2bp.exe 进程,但错误仍然存​​在。 db2diag.log 文件里面什么都没有,唯一的解决办法就是重启机器。 可能是 CMD.exe 进程失去了与 db2bp.exe 的通信,无法执行退出。我想了解这个问题的根源,并了解如何在 Windows 中执行 db2 进程。

【问题讨论】:

  • 这听起来不像是编程问题。您是否与 IBM 建立了 PMR?
  • 问题出在另一个 db2cmd 会话中,其中存在不定式循环。当新的 db2cmd 会话因为第一个会话使用了整个 CPU 而被阻塞时,这就产生了一个场景。
  • 您似乎发现了问题,请您自己创建并回答并接受它吗?谢谢。

标签: windows shell batch-file db2 cmd


【解决方案1】:

我们的朋友@AngocA 似乎经常检查这个问题,但他并没有检查这个悬而未决的问题,即使他做了一些事情来关闭它。让我们至少把他的答案放在这里,这样人们就知道它已被用户关闭。 :) 由今晚的皮条客角提供。 :-D

“问题出在另一个 db2cmd 会话中,其中有一个 不定式循环。这在新的 db2cmd 会话时创建了一个场景 被阻塞,因为第一个会话使用了整个 CPU。 – AngocA”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-02
    • 2013-09-22
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    相关资源
    最近更新 更多