本主题仅适用于 IBM Business Process Manager Advanced 配置。

创建新版本的流程 - 迁移正在运行的实例

流程实例迁移通过创建流程迁移规范使您能够将正在运行的实例迁移至较新的版本。 本主题阐述如何创建可用作运行时环境中流程实例迁移目标的流程的新版本。

开始之前

您必须在运行时环境中部署并安装长时间运行业务流程。您决定想要创建新版本的流程并且想要正在运行的流程实例采用新版本中包含的更改。正在运行的实例是否可以实际迁移至较新的版本还取决于此实例的状态。流程的新实例可以使用最新版本。
要点: 仅当包含 BPEL 流程的模块不属于流程应用程序或工具箱时,本主题中的信息才适用。如果 BPEL 流程属于流程应用程序或工具箱,那么在“流程中心”中创建流程应用程序或工具箱的 Snapshot 以对 BPEL 流程进行版本控制。

关于此任务

要创建在运行时针对实例迁移启用的新流程版本,您需要定义流程迁移规范。 您可以将新流程版本和流程迁移规范部署至运行时环境。然后,管理员可以将运行时环境中的现有流程实例迁移至新版本的流程中。在 IBM® Integration Designer 中创建新流程版本时,将包含所创建的包含流程版本的模块的新版本(因为您需要新的部署容器)。 如果流程源自 IBM WebSphere® Business Modeler,那么从 IBM WebSphere Business Modeler 导出期间还将创建所有项目的新版本。

过程

  1. 为了创建新流程版本,提供了多个可启动“新建流程版本向导”的启动点:
    • 从“业务集成”视图的“模块”中:在“业务集成”视图中,右键单击包含业务流程的模块,然后选择“新建流程版本”。
    • 从“业务集成”视图的流程中:在“业务集成”视图中,右键单击 BPEL 流程,选择“新建流程版本”。
    • 在组合件图的组件中:在“组合件”图中,选择要复制的 BPEL 流程组件,单击右键并选择“新建流程版本”。
  2. 在向导的第一个页面上,指定新名称或新的模块版本。您所指定的对象取决于流程是包含在非版本控制模块(缺省值)还是版本控制模块中。
    向导的第一个页面显示以下内容:
    • 非版本控制的业务集成模块:在第一个向导页面上,指定新的模块名称。向导保留原始模块不受更改,并利用新指定的名称创建新模块以进一步编辑。
    • 版本控制业务集成模块:在第一个向导页面上,指定新的模块版本。向导创建原始模块的备份副本以仅供 IBM Integration Developer 内部使用(而非 IID 用户使用),并更新当前模块的模块版本以进一步编辑。
    • 如果流程来自于 IBM WebSphere Business Modeler,那么可能会提示您为多个模块和库指定新版本。

    如果创建的流程是来自于 IBM WebSphere Business Modeler 的原始模块的新版本,那么您可能需要针对多个模块和库提供名称和版本。在将流程从 IBM WebSphere Business Modeler 导出至 IBM Integration Designer 时,存在多个导出设置:IBM WebSphere Business Modeler 中推荐的导出设置是 2 个模块 + 1 个库,但是您还可以创建模块 + 库,或仅模块。根据建模器中选择的选项,新流程版本向导检测这些项目设置并将它们作为单个单元进行处理。

  3. 在指定新名称和/或新版本后,指定新的 BPEL 流程设置。
    1. 指定日期和时间:必须指定新流程版本将生效的日期和时间 (validFrom)。 指定“现在”或实际日期和时间。 如果输入无效日期/时间,那么将禁用“完成”按钮。确保副本在原始版本之后生效。
    2. 创建流程迁移规范:为了迁移正在运行的流程实例,必须选择想要在运行时针对实例迁移启用的流程组件。“流程迁移规范”字段显示原始模块中包含的所有流程组件。如果选择不应用于流程实例迁移的流程组件,那么将禁用“完成”按钮。 表 1 显示不可应用于流程迁移的组件示例。
      表 1. 组件示例
      流程无效的原因 用户操作(用于恢复)
      流程不包含 validFrom 日期 向流程添加 validFrom 日期
      流程未长时间运行 (Microflow) 重构流程以变为长时间运行
      流程是通过 WebSphere Integration Developer V7.0.0.0 之前的版本所创建 在 WebSphere Integration Developer 7.0.0.0 或更高版本中打开流程并保存一次。
      流程是通过 V7.0.0.2 之前的建模器所创建
      1. 在 WebSphere Business Modeler 7.0.0.2 或更高版本中重新导出流程。在导出期间,确保选中“启用生成的 BPEL 进行流程版本控制”复选框。
      2. 将导出与工作空间中的流程进行同步
      流程包含补偿逻辑 不受支持(除去补偿逻辑)
      流程包含 Information Server 活动 不受支持(除去 Information Server 活动)
      将针对选择的每个流程在新模块中创建流程迁移规范。此流程迁移规范中的源指向模块的原始版本中的流程版本。目标指向模块的新版本中的流程版本。
  4. 如果模块包含业务状态机,那么必须指定新业务状态机生效的日期 (validFrom)。指定“现在”或实际日期和时间。 如果输入无效日期/时间,那么将禁用“完成”按钮。确保副本在原始版本之后生效。
  5. 如果模块包含“人员任务”,必须指定新“人员任务”生效的日期 (validFrom)。指定“现在”或实际日期和时间。 如果输入无效日期/时间,那么将禁用“完成”按钮。确保副本在原始版本之后生效。
  6. 如果模块包含“业务规则组”,那么必须为每个“业务规则组”指定(至少)一个新的名称空间。 向导针对每个“业务规则组”建议一个唯一名称空间。 对于关联的规则逻辑工件(决策表和规则集),还必须提供唯一的名称/名称空间组合。向导针对每个规则逻辑工件建议一个唯一的名称/名称空间组合。如果对向导建议满意,请单击下一步。否则,单击“新建名称”列中相应的表行以启动对话框,并根据您的需要调整名称或名称空间。
  7. 如果模块包含“选择器”,那么必须为每个“选择器”至少指定一个新的名称空间。向导针对每个“选择器”建议一个唯一名称空间。如果对向导建议满意,请单击“下一步”。否则,单击“新建名称”列中相应的表行以启动对话框,并根据您的需要调整名称或名称空间。
  8. 在完成“新建流程版本向导”后,可能会打开一个“未处理的工件”对话框。如果是,可能需要手动调整。有关详细信息,请参阅表 2。
  9. 完成版本控制流程后,现在新的流程版本位于您的新模块中。对新版本的 BPEL 流程进行所需的更改。
  10. 检测生成的流程迁移规范以查找问题。如果问题存在,“业务集成”视图中的迁移规范(浏览至:集成逻辑 -> 流程迁移规范)将标记一个错误,并在“问题”视图中显示问题。

    迁移规范是用于相互关联两个流程版本并打开流程迁移规范编辑器的工件。流程迁移规范编辑器具有两个选项卡:概述,提供有关源和目标的详细信息;差异,提供已应用于目标流程的修改的直观表示。您必须解决所有报告的问题。

    为了分析这些更改可能对于 IBM Process Server 中正在运行的实例的影响,请参阅技术说明,地址为:http://www-01.ibm.com/support/docview.wss?rs=2307&uid=swg27017383。

    如果决定在复审流程迁移规范后不修订所有错误,那么仍可以部署并安装新流程版本。但是,必须删除流程迁移规范并在无流程迁移规范的情况下部署新版本。 请参阅创建新版本的流程 - 使用旧版本运行实例以获取更多详细信息。

  11. 保存您所作的工作。
  12. 您可以将此新模块部署为想要的任何其他模块。
    表 2 定义在创建流程版本期间未自动处理的工件,并且按照用户操作列中的描述手动调整(如果使用)。
    表 2. 工件类型和操作
    工件类型 用户操作
    动态组装器 使用 WebSphere Integration Developer 中可用的 Studio 工具在新的模块版本中配置新创建的“动态组装器”
    HTTP 导出绑定
    • HTTP 端点需要是唯一的
    • 必须重命名上下文根

    需要更新客户机以使用新版本。

    Web Service 导出绑定(JAX-WS 和 JAX-RPC)
    • 端点需要是唯一的
    • 对于 SOAP/HTTP,必须相应重命名上下文根
    • 对于 SOAP/JMS,必须相应重命名目标队列

    需要更新客户机以使用新版本。

    通用 JMS 导出绑定
    • 端点配置
    • 接收目标
    • 侦听器端口名称(如果定义)

    不得在模块之间进行共享,并且需要手动更改。

    通用 JMS 导入绑定
    • 端点配置
    • 接收目标
    • 侦听器端口名称(如果定义)

    不得在模块之间进行共享,并且需要手动更改。如果目标模块端点也发生更改,那么应小心设置匹配发送目标

    JMS 导出绑定
    • 端点配置
    • 接收目标
    • 侦听器端口名称(如果定义)

    不得在模块之间进行共享,并且需要手动更改。

    JMS 导入绑定
    • 端点配置
    • 接收目标
    • 侦听器端口名称(如果定义)

    不得在模块之间进行共享,并且需要手动更改。如果目标模块端点也发生更改,那么应小心设置匹配发送目标。

    MQ 导出绑定
    • 端点配置
    • 接收目标队列

    不得在模块之间进行共享,并且需要手动更改。需要将客户机更新为新的队列名称。

    MQ 导入绑定
    • 端点配置
    • 接收目标队列

    不得在模块之间进行共享,并且需要手动更改。如果目标模块端点也发生更改,那么应小心设置匹配发送目标。需要将客户机更新为新的队列名称。

    MQ JMS 导出绑定
    • 端点配置
    • 接收目标队列

    不得在模块之间进行共享,并且需要手动更改。需要将客户机更新为新的队列名称。

    MQ JMS 导入绑定
    • 端点配置
    • 接收目标队列

    不得在模块之间进行共享,并且需要手动更改。如果目标模块端点也发生更改,那么应小心设置匹配发送目标。需要将客户机更新为新的队列名称。

流程实例迁移的建模注意事项

关于此任务

创建流程迁移规范支持在运行时将流程实例从一个流程版本迁移至较新的流程版本。流程迁移规范的源流程版本和目标流程版本需要满足某些条件以避免在流程迁移规范中发生错误。以下是必须满足的条件列表:
  • 必须使用新建流程版本向导创建目标流程版本。
  • 流程迁移规范的目标流程版本需要是较新版本的源流程:
    • 源和目标版本的组件名称和目标名称空间必须相同。
    • 需要在以后将目标版本的 validFrom 日期与源版本的 validFrom 日期进行比较。
      注: 必须在源版本和目标版本中明确指定 validFrom
  • 源流程版本和目标流程版本不得包含任何补偿逻辑,例如,补偿活动、补偿处理程序或补偿服务规范。
  • 流程必须长时间运行。
  • 源流程版本和目标流程版本必须通过 WebSphere Integration Developer V7.0.0 创建。不得源自于其他编写环境或者使用较早版本的 WebSphere Integration Developer 创建。

流程迁移规范的验证还确保仅受支持的模型更改应用于新(目标)版本。请相应拒绝不受支持的更改。

有关流程实例迁移的更多信息,请参阅 IBM Process Server 信息中心