BPEL 设计器开发人员指南:使用处理程序
由 Bob May 创建,由 Irina Filippova
维护,2007 年 12月
目录

BPEL 设计器开发人员指南
使用处理程序
我们将按照以下安排依次介绍这些内容:
- 使用特定处理程序时的环境。
- 在 BPEL 设计器环境中使用这些元素。
在本 BPEL 设计器发行版本中,您可以将错误处理程序和事件处理程序添加到 BPEL 流程中。但是不支持补偿和终止处理程序。有关所支持的 BPEL 2.0 语言结构和相关限制的详细信息,请参阅 BPEL 服务引擎用户指南。
使用错误处理程序
何时使用
BPEL 语言提供了使用错误处理程序来捕获和管理异常的功能。例如,当 Web 服务返回的数据与所需的数据不同时,将会发生异常。如果错误得不到处理,则整个 BPEL 流程都会变为错误状态。因此,为防止整个流程出错,可以在特定的 Scope 内添加错误处理程序来捕获和管理异常。
每个错误处理程序都包含一个在出现错误时运行的活动。例如,如果出现错误,则合作伙伴服务会接到通知。错误处理程序将会添加到整个 Process 或单个 Scope 元素中。
您可以将一个错误处理程序容器附加到 Process 或 Scope 元素上。在误处理程序容器内,可以创建几个配置为捕获特定类型错误的捕获活动,或者创建一个全部捕获处理程序元素以捕获特定处理程序没有捕获到的所有异常。
用法
- 右键单击 Process 或 Scope 元素,然后选择“添加”>“变量”。
使用空元素
- 右键单击 "Event Handlers" 容器,然后选择“添加”>“活动事件”。
您可以在错误处理程序组中添加任意数量的特定捕获元素。在每个错误处理程序容器中,只能添加一个全部捕获元素。
- 添加一个活动元素到将在错误时执行的 Catch 或 Catch All 元素中。
捕获元素
可以使用此元素来截取并处理特定类型的错误。
此元素在相应的错误处理程序容器元素中使用。
捕获元素属性
捕获元素的属性是在属性窗口中定义的。也可以在图中右键单击该元素,然后选择“属性”。可用的属性包括:
- 错误名称。从错误列表中选择错误的 Qname,该列表中包含系统错误和在 WSDL 文件中定义的错误。
- 错误变量名称。指定将包含错误消息的 BPEL 变量的名称。
- 错误变量类型。指定变量的类型。

全部捕获元素
可以使用全部捕获元素来截取并处理关联的捕获元素没有捕获到的所有错误。
全部捕获元素在错误处理程序窗口中与一个或多个捕获元素一起使用。它随同一个或多个捕获元素一起定义在错误处理程序容器元素中。
全部捕获元素没有任何属性。其行为是预定义的,因此不需要属性配置。
回到顶部
使用事件处理程序
何时使用
可以将整个 BPEL Process 以及每个单独的 Scope 与发生相应事件时并发调用的一组事件处理程序相关联。在事件处理程序中执行的操作可以是任何类型的活动,如 Sequence 或 Flow。事件处理程序的唯一直接子元素是 Scope,因此,在您将元素从组件面板拖到事件处理程序时,会自动将其包含在 Scope 中。
事件分为两种类型:
- 首先,事件可以是对应于 WSDL 中的请求/响应或单向操作的传入消息。可以使用 On Event 元素来指定这些消息。
- 其次,事件可以是在用户设置的时间过后触发的警报或计时器。可以使用 On Alarm 元素来指定时间。
用法
- 右键单击 Process 元素或任何 Scope 元素,然后调用添加事件处理程序操作。此操作不会添加任何特定的事件处理程序,它只会添加一个容器元素,您可以随后在其中添加特定的事件处理程序。
- 右键单击 Process 元素或任何 Scope 元素,然后调用添加事件处理程序操作。此操作不会添加任何特定的事件处理程序,它只会添加一个容器元素,您可以随后在其中添加特定的事件处理程序。
活动事件元素
活动事件元素表示指定的事件在等待消息的到达。对此标记及其属性的解释与接收活动非常类似。
用法
- 右键单击 "Event Handlers" 容器,然后选择“添加”>“活动事件”。
- 双击活动事件元素可打开一个属性编辑器,您可以在其中指定/更改以下内容:
- 右键单击活动事件元素并选择“属性”可打开一个属性窗口,您可以在其中查看并修改元素的属性。除了属性编辑器中的属性外,属性窗口还包含端口类型字段,该字段是在您指定了合作伙伴链接和操作时填充的。

可以使用活动事件元素属性编辑器上的“关联”选项卡来检查或指定关联集。
该选项卡将显示:
您可以通过单击“添加”按钮来添加关联集。有关详细信息,请参见定义关联集并将其添加到元素中。
活动警报元素
活动警报元素指定了嵌套的 Scope 的截止期限或持续时间。
活动警报元素属性
活动警报元素的属性是在属性窗口中定义的;要调用此窗口,请右键单击该元素,然后选择“属性”。可用的属性包括:
- “警报类型”用于选择警报的类型。可用的选项有:
- For - 指定流程等待的持续时间。
- Until - 指定流程的截止期限。
- Repeat Every. 指定流程的启动频率。每次在指定的持续时间段到期时,将启动给定的流程。则第一次持续时间的时钟计时将从关联的范围启动时开始。
- For + Repeat Every. 指定在等待的时间段过后启动流程的频率。每次在 Repeat Every 字段中指定的持续时间段到期时,将启动流程。For 字段中指定的时间段到期时,将触发第一个警报。
- Until + Repeat Every. 基于指定的截止期限指定流程启动的频率。每次在 Repeat Every 字段中指定的持续时间段到期时,将启动流程。到达 Until 字段中指定的截止期限时,将触发第一个警报。
- 第二个属性(和第三个属性,如果可用)用于指定选定警报类型的持续时间或截止期限。
回到顶部