在 IBM® Business Monitor 中会发生三种类型的异常:软异常、硬异常和不确定异常。
由于异常处理是由监控模型中的用户进行配置(如相关匹配异常和找不到父代异常),因此预期会发生软异常。Monitor 服务器会记录软异常,并向仪表板的“警报”中显示的 Monitor 操作服务发送事件,以通知管理员发生了异常。 当出现软异常时,对其他事件的处理仍将正常进行。
硬异常(或运行时异常)是在检索和处理监控模型的事件时,作为运行时错误的结果抛出。由于未在监控模型中配置此类异常,所以它是意外之外的。将通过日志文件记录并跟踪这类异常。导致硬异常的事件以及这些事件触发的所有映射和情况都将回滚。 将向 Monitor 操作服务发送事件,并且会发送警报,例如电子邮件。
对事件会重试回滚处理,直到其成功处理,这会导致 IBM Business Monitor 服务器阻塞。到达的新事件于是停留在队列中,这会导致事件的处理顺序发生混乱。
通过将 Monitor_Bus_Queue_Destination 目标队列的异常目标从无更改为系统,可以防止 IBM Business Monitor 服务器被任何运行时异常所阻塞。 这样,引起运行时异常的事件将被忽略。 然而,管理员在配置 IBM Business Monitor 必须加以选择,要么使其在运行时异常出现时停止,以保持数据一致性和事件的顺序;要么使其忽略引起错误的事件,以避免服务器中止,但允许出现数据不一致性和事件无序情况。
针对处理准时情况时引起的硬异常,实施了该行为的特例。只要这些情况是 IBM Business Monitor 服务器生成并拥有,并且这些情况独立于运行时引擎事件,那么通过强制 IBM Business Monitor 服务器重试处理事件并阻塞系统,无需再以同样方式处理这些异常。在这种情况下,将以不同的方式处理由准时状态事件引起的异常。
对准时状态事件的处理会在批处理事件处理循环事务范围内完成。如果处理准时状态事件时抛出异常,那么会回滚已处理事件的批处理。然后,IBM Business Monitor 服务器会重置最后触发时间值,使得创建下一个准时事件时,它会重新将上次触发时间初始化为当前 IBM Business Monitor 服务器时间。该操作会将准时状态事件推迟到下一个准时状态事件时间间隔,而在该时间间隔中处理的事件可能会消除错误根源。
如果 WebSphere Application Server 锁定,那么某些事件的状态会设置为不确定。IBM Business Monitor 服务器无法确定是否已成功处理不确定事件。因此,如果记录了发现的异常,那么会向 Monitor 操作服务发射事件,以便发送警报。 接下来,管理员必须确定是重新处理这些事件还是删除它们。