此规则模式的示例用法
说明检测完整序列的场景:
假定在 IT 环境中,管理员希望了解 DB2
® 堆大小的值是否正在影响 WebSphere
® Application Server,如果是,则更正该问题。因此,如果在指定的时间段内按下列顺序发生以下事件,则管理员要增大 DB2 堆大小的值并重新启动数据库管理器:
- WebSphere Application Server 资源分配异常。假定这是 WASResourceAllocationException 类型的事件。
- DB2 错误消息,其内容为:“堆不足以处理语句”。假定这是 DB2NotEnoughHeap 类型的事件。
对于此场景,在序列规则中定义了 2 个 <eventSelector> 元素,且事件必须按编写 <eventSelector> 元素代码的顺序(而非随机顺序)到达。第 1 个 <eventSelector> 元素将检查事件
WASResourceAllocationException,第 2 个 <eventSelector> 元素将检查事件
DB2NotEnoughHeap。假定系统在指定的时间窗口中存在下列事件:
- WASResourceAllocationException
- DB2BackupStarted
- WASResourceAllocationException
- WASResourceAllocationException
- DB2NotEnoughHeap
规则行为如下:
- 接受第 1 个事件 WASResourceAllocationException。由于已符合第 1 个 <eventSelector> 元素
的条件,因此第 1 个 <eventSelector> 元素目前已被排除在该规则中的进一步事件处理之外。
- 忽略第 2 个事件 DB2BackupStarted。
- 忽略第 3 个事件 WASResourceAllocationException。
- 忽略第 4 个事件 WASResourceAllocationException。
- 接受第 5 个事件 DB2NotEnoughHeap,并完成该序列。<onDetection> 规则响应操作将运行。该操作被定义为增大 DB2 堆大小的值并重新启动数据库管理器。规则将返回到它的初始状态。
该规则现在将第 1 个 <eventSelector> 元素包含
到未来的事件处理中。
说明检测不完整序列的场景:
假定业务机构希望在接收到订单请求后的 1 小时内使所有的客户订单都可供货,并希望了解什么时候没有这样做到。
对于此场景,在序列规则中定义了 2 个 <eventSelector> 元素,且事件必须按编写 <eventSelector> 元素代码的顺序(而非随机顺序)到达。第 1 个 <eventSelector>
元素将检查事件
Netsales(带有
operationType=Order),
第 2 个 <eventSelector> 元素将检查事件
Netsales(带有
operationType=Delivery)。假定系统在指定的时间窗口(1 小时)中存在下列事件:
- Netsales 事件(带有 operationType=Order)
- Netsales 事件(带有 operationType=Order)
规则行为如下:
- 接受第 1 个事件。由于已符合第 1 个 <eventSelector> 元素
的条件,因此第 1 个 <eventSelector> 元素目前已被排除在该规则中的进一步事件处理之外。
- 忽略第 2 个事件。
- 因为在指定的时间窗口内没有接收到 Netsales 事件(带有 operationType=Delivery),所以将运行 <onTimeOut> 规则响应操作。此操作被定义为通知业务主管:未能在接收到订单请求后的 1 个小时内使客户订单可供货。规则将返回到它的初始状态。
该规则现在将第 1 个 <eventSelector> 元素包含
到未来的事件处理中。