在 BPEL 流程中使用事件和超时
异步 Web 服务通常需要很长时间才能返回响应,因此,BPEL 流程服务组件必须能够超时,或放弃等待,并在一定时间后继续其余流程。您可以使用 pick 活动来配置 BPEL 流程,使其等待指定的时间或继续执行其职责。要设置时间的有效期,您可以使用 wait 活动。为了管理消息,可以使用事件,特别是在业务流程等待合作伙伴 Web 服务的回调时。
事件
BPEL 支持两种类型的事件 −
消息事件
这些事件由通过端口类型上的操作调用传入的消息触发。
警报事件
这些事件与时间相关,在一定持续时间后或特定时间触发。
但是,通常等待多条消息更有用,其中只有一条会出现。
当您希望流程等待回调一段时间(例如 15 分钟)时,警报事件很有用。
如果没有收到回调,流程流将继续按设计进行。
在松散耦合的面向服务架构,您不能依赖 Web 服务始终可用。
挑选活动
挑选活动有 2 个分支 −
onMessage − 此分支上的代码等于添加超时之前接收响应的代码。
onAlarm − 此条件具有一分钟超时的代码。
等待活动
等待活动允许进程等待给定的时间段或直到达到时间限制。必须指定其中一个到期条件。