【发布时间】: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