防止 MDB 应用程序发生系统资源问题

可配置系统,以便在相关外部系统资源存在问题时,在将消息不必要地移至异常目标之前停止企业应用程序。此配置还允许在不停止企业应用程序的情况下处理临时问题及消息。

开始之前

此任务假定您已部署包含与外部系统资源交互的消息驱动的 Bean (MDB) 的企业应用程序。

MDB 侦听的目标必须是异常目标。此异常目标可以是系统缺省值,也可以是专门为该目标配置的值。

要完成此任务,您需要以下信息:
  • 包含 MDB 的企业应用程序。
  • 相关外部系统资源。
  • 连续失败消息阈值的可接受值,即,最大消息传送连续失败数,在此之后 MDB 会停止。此属性适用于消息集。
  • 失败消息重试之间的延迟的可接受值,即,可将失败消息传送至 MDB 之前的时间(以毫秒计)。除非连续失败消息阈值和最大并行度设置为 1,否则在此时间段内可能会传送其他消息。
  • 每个消息的最大失败传递次数的可接受值,即,尝试处理消息的最大失败次数,在此之后消息将从其期望目标转发至异常目标。此属性适用于个别消息。

关于此任务

MDB 处理消息失败时,该消息会回滚并且再次对 MDB 可用。通常会以下列其中一种方式配置消息传递系统:
  1. 失败的消息会重试有限次数,如果这些消息仍然失败,那么它们会移至异常目标,以允许处理后续消息。
  2. 失败的消息会重试无限次数,直到问题被修正。

配置 (1) 保护 MDB 以避免出现临时问题消息,此消息会导致后续消息无法得到处理。但是,如果企业应用程序或业务级应用程序所依赖的资源(例如,数据库)存在长期持续的问题,那么发送至目标的所有消息可能会移至异常目标。

配置 (2) 阻止消息传送直到原始失败消息问题得到解决。此配置阻止消息不必要地移至异常目标,但一旦单个问题消息处理失败,它也会阻止后续消息的处理。

可对 MDB 配置激活规范,以便检测到一定数目的后续消息失败时自动停止 MDB 端点。这些失败指示相关资源存在问题。问题得到解决后,以手动方式重新启动 MDB 端点。此配置容许临时消息失败,从而允许个别问题消息移至异常目标而不停止整个 MDB。

使用以下步骤来保护企业应用程序以避免相关外部系统资源出现故障。

过程

  1. 浏览至包含 MDB 的已部署企业应用程序。
  2. 在 MDB 中,浏览至其 JMS 激活规范。单击资源 -> JMS -> 激活规范 -> activation_specification_name
  3. 连续失败消息阈值失败消息重试之间的延迟输入值。
  4. 保存配置。
  5. 浏览至 MDB 正在侦听的目标。根据需要单击下列其中一条路径:
    • 服务集成 -> 总线 -> bus_name -> [目标资源] 目标 -> queue_name
    • 服务集成 -> 总线 -> bus_name -> [目标资源] 目标 -> topic_space_name
  6. 每个消息的最大失败传递次数输入值。
  7. 将更改保存至主配置。

结果

您已配置企业应用程序或业务级应用程序以保护其自身不会出现可随时发生的外部资源问题。这意味着,如果发生系统资源问题,那么任何消息达到连续失败消息阈值时,会自动停止 MDB。

下一步做什么

失效的系统资源变为可用后,可重新启动此系统资源并恢复 MDB。系统资源不可用期间失败的消息将被重试而不是留在异常目标上。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjn_mdb_0001
文件名:tjn_mdb_0001.html