防止 MDB 应用程序发生系统资源问题
可配置系统,以便在相关外部系统资源存在问题时,在将消息不必要地移至异常目标之前停止企业应用程序。此配置还允许在不停止企业应用程序的情况下处理临时问题及消息。
开始之前
MDB 侦听的目标必须是异常目标。此异常目标可以是系统缺省值,也可以是专门为该目标配置的值。
要完成此任务,您需要以下信息:
- 包含 MDB 的企业应用程序。
- 相关外部系统资源。
- 连续失败消息阈值的可接受值,即,最大消息传送连续失败数,在此之后 MDB 会停止。此属性适用于消息集。
- 失败消息重试之间的延迟的可接受值,即,可将失败消息传送至 MDB 之前的时间(以毫秒计)。除非连续失败消息阈值和最大并行度设置为 1,否则在此时间段内可能会传送其他消息。
- 每个消息的最大失败传递次数的可接受值,即,尝试处理消息的最大失败次数,在此之后消息将从其期望目标转发至异常目标。此属性适用于个别消息。
关于此任务
MDB 处理消息失败时,该消息会回滚并且再次对 MDB 可用。通常会以下列其中一种方式配置消息传递系统:
- 失败的消息会重试有限次数,如果这些消息仍然失败,那么它们会移至异常目标,以允许处理后续消息。
- 失败的消息会重试无限次数,直到问题被修正。
配置 (1) 保护 MDB 以避免出现临时问题消息,此消息会导致后续消息无法得到处理。但是,如果企业应用程序或业务级应用程序所依赖的资源(例如,数据库)存在长期持续的问题,那么发送至目标的所有消息可能会移至异常目标。
配置 (2) 阻止消息传送直到原始失败消息问题得到解决。此配置阻止消息不必要地移至异常目标,但一旦单个问题消息处理失败,它也会阻止后续消息的处理。
可对 MDB 配置激活规范,以便检测到一定数目的后续消息失败时自动停止 MDB 端点。这些失败指示相关资源存在问题。问题得到解决后,以手动方式重新启动 MDB 端点。此配置容许临时消息失败,从而允许个别问题消息移至异常目标而不停止整个 MDB。
使用以下步骤来保护企业应用程序以避免相关外部系统资源出现故障。