ITPub博客

首页 > IT职业 > IT生活 > 为什么有时候FORCE APPLICATION命令执行成功,但是好像不起作用?

为什么有时候FORCE APPLICATION命令执行成功,但是好像不起作用?

原创 IT生活 作者:Zoroaster 时间:2007-03-16 16:38:23 0 删除 编辑

通常,强制停止命令(FORCE)只是发出一个中断信号。当一个代理进程执行强制停止命令时,它将为应用程序设置一个强制停止标志,是否能够强制停止,要看协调代理进程在做什么,然后代理进程向协调代理进程发出中断信号或者是处于等待状态。

[@more@]

通常,强制停止命令(FORCE)只是发出一个中断信号。当一个代理进程执行强制停止命令时,它将为应用程序设置一个强制停止标志,是否能够强制停止,要看协调代理进程在做什么,然后代理进程向协调代理进程发出中断信号或者是处于等待状态。

有些时候,代理进程只能处于等待状态。因为当每一个中断发出时,都有中断的优先级。原则上DB2的强制停止命令只能中断那些优先级别比较低的进程。

比如,如果一个应用程序正在执行回滚操作,而这个时候我们发出强制停止命令,如果进程这时被停止,数据库会处于不一致状态,这当然是我们不愿意看到的。所以我们不会终止这样的进程。这个机制是由中断的优先权来控制的。在这个例子中,回滚操作有较高的优先级别,相对低的代理进程无法中断它。

就像我们执行FORCE APPLICATION命令看到的输出一样,强制停止进程是一个异步进程。当应用程序处于回滚状态时,代理进程只是设置一个强制停止标志,但不会马上中断程序。上面的例子中,当协调代理节点结束回滚操作后,它会恢复到比较低的优先级别,等到代理进程检查强制停止或中断时,它会发现强制停止标志并执行中断。因此,强制停止命令并不是没有工作,而是延迟到之后的某个时间来执行,而这个延迟时间是无法有代理进程控制的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8481986/viewspace-905545/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    24
  • 访问量
    721734