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

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

[@more@]

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

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

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

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

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

转载于:http://blog.itpub.net/8481986/viewspace-905545/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值