
将正在运行的流程实例迁移到新版本的 BPEL 流程
当您引入新的 BPEL 流程版本时,可能希望将此版本同时应用于新流程实例和已经启动的实例。 在需要频繁更改流程但个别流程实例存在时间相对很长的环境中,这非常重要。 在此类情况下,您需要将正在运行的流程实例迁移至更新的版本。
您可以通过以下一种方式来创建新的 BPEL 流程版本:
- 在 Integration Designer中创建新版本的 BPEL 流程,并将其部署到 Workflow Server。
- 更新 IBM® WebSphere® Business Modeler V 7.0.0.2 或更高版本中的流程,将其导出到 Integration Designer,并将其部署到 Process Server。
- 在 Integration Designer中创建新版本的 BPEL 流程,将其交付到 Workflow Center,然后部署相应的流程应用程序或 Toolkit。
- 为包含 BPEL 流程(尚未修改)的流程应用程序或 Toolkit 创建一个新的 Snapshot,并加以部署。
例如,下图显示了在 Integration Designer 中定义新版本流程的步骤,直到在 Workflow Server中迁移正在运行的实例。
通常,对于要成为迁移目标的新的 BPEL 流程版本,您必须将迁移规范与新的流程版本一起部署。 如果您部署流程应用程序或 Toolkit 的新 Snapshot,该流程应用程序或 Toolkit 与先前部署的 Snapshot 具有相同的 BPEL 流程实现,那么新的 BPEL 流程版本会自动成为先前部署的 Snaoshot 的迁移目标。
要将正在运行的流程实例迁移到新版本的流程,您可以使用管理脚本批量迁移流程实例,也可以使用 Business Process Choreographer Explorer 迁移特定 instances.When 迁移时,流程,变量, 而处于流程导航当前位置的活动现在是指新版本的 BPEL 流程,后续导航取决于新版本的 BPEL 流程的逻辑。 迁移流程实例时已导航的活动不会迁移。 迁移流程实例期间,还会迁移所有属于此流程实例且尚未进入结束状态的内联人员任务的实例。
如果对新流程版本中包含的流程所做的更改不会影响流程逻辑(如活动的显示名称或描述),那么可在流程导航期间随时迁移正在运行的流程实例。 但是,如果这些更改影响了流程逻辑(如新活动、变量或条件表达式发生更改),那么仅当所有影响流程逻辑的更改在流程导航中的当前位置之后时,可将正在运行的流程实例迁移至更新的版本。
例如,对内联人员任务的任何更改均视为影响到流程的逻辑。 仅当所有已更改内联人员任务在流程导航中的当前位置之后时,可将正在运行的流程实例迁移至更新的版本。
如果为 BPEL 流程定义事件,那么可以使用“公共基本事件”跟踪流程迁移。 当启动迁移以及完成迁移时都可以生成事件。 流程迁移的历史记录还会保存在 Business Process Choreographer 数据库中。