快速业务通道

jBPM-4.0中文开发指南-第7章 高级图形执行 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
的方法,在异常处理器 获得一个机会来处理异常。比如,如果活动是等待状态, 然后发生了一个异常,这里就会有一个风险,线程会跳出 execution.waitForSignal()的调用, 导致执行在这个活动以后继续执行。

TODO: exceptionhandler.isRethrowMasked

TODO: transactional exception handlers

TODO: we never catch errors

7.8. 流程修改

TODO: 流程修改

7.9. 锁定和流程状态

一个执行的状态不是激活就是锁定。 一个激活的执行不是执行就是等待外部触发器。 如果一个执行不是STATE_ACTIVE,那么它就是被锁定。 一个锁定的执行是只读的,不能接受任何外部触发器。

当一个新执行被创建时,它是STATE_ACTIVE. 为了把状态修改成锁定状态,使用lock(String)。一些STATE_*常量 被提供了,它们演示了最常用的锁定状态。 但是在图片中的''……''状态展示了任何字符串 都可以作为状态提供给lock方法。

执行的状态

jBPM-4.0中文开发指南-第7章 高级图形执行 - 编程入门网

图 7.8. 执行的状态

如果一个执行被锁定,修改执行的方法会 抛出一个PvmException,信息会引用真实的锁定状态。 触发事件,更新变量,更新优先级,添加注释 不会当做是修改执行。 子节点的创建和删除也不会检测, 这意味着那些方法可以被外部API客户和活动行为调用, 即使执行在锁定状态。

确保比较getState()和STATE_*常量时 使用。equals,不要使用''=='',因为如果执行从持久存储加载。 会创建一个新字符串,而不是使用常量。

一个执行实现会被锁定:

* 当它结束

* 当它暂停

* 在异步延续过程中

更多的,锁定可以被活动实现使用, 让执行在等待状态下只读,然后为这个执行传递 的外部实例就像这样:

* 一个人员任务

* 一个服务调用

* 一个等待状态当探测器检测一个文件的出现时就结束

在这些情况,策略是外部实例应该获得 执行的完全控制,因为它想要控制什么应该允许,什么不应该。 为了获得那种控制,他们锁定了执行,所以所有内部交互 必须通过外部实例传递。

一个创建外部实例的主要原因是, 它们可以在执行已经执行过还存在。比如, 在服务调用的情况,定时器可以导致执行获得超时转移。 当响应在超时后到达,服务调用实例应该 确认它没有signal这个执行。所以服务调用可以看做 一个活动实例(活动实例) 是对活动每个执行的唯一实例。

外部实例它们自己负责管理执行锁定。 如果定时器和客户端应用结果是选择 外部实例,而不是直接选择执行,然后在理论上是不必要的。 它是从事活动行为实现,无论它希望 执行锁定还是解锁。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号