示例 4:未指定异常目标时自动停止 MDB

要为系统资源不可用的情况或问题消息做好准备,请配置系统以自动停止消息驱动的 Bean (MDB)。为保留消息排序,请不要使用异常目标。

开始之前

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

MDB 侦听的目标不得使用异常目标,即,队列或主题空间目标的异常目标必须配置为“无”。

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

JCA MBean 会发出 JMX 通知以指示 MDB 已暂停,并且 MDB 已恢复。考虑在 JCA MBean 上注册消息侦听器以接收 JMX 通知。

关于此任务

在此方案中,企业应用程序是持续运行的系统,此系统使用已部署 MDB 来访问外部系统资源。

遇到问题消息(在此方案中为 msg1)时,会将它放回到队列上。

msg1 将在失败消息重试之间的延迟重试延迟期间(在此方案中为 5 秒)隐藏,而不是立即对 MDB 可用。

隐藏的消息数达到连续失败消息阈值时,MDB 将不会处理其他任何消息,直到其中一个隐藏消息重新变为可用。在此方案中,一旦 msg1 被隐藏就达到此阈值。

msg1 的失败消息重试之间的延迟到期时,会显示 msg1 并对其进行重新处理。

此过程会一直重复,直到 msg1 达到其每个消息的最大失败传递次数限制(在此方案中为 5 次)。

msg1 第 4 次显示,回滚并再次隐藏后,达到连续失败消息阈值并且 MDB 自动停止。JCA MBean 会发出 JMX 通知,并且日志条目会向系统管理员发出 MDB 已停止的警报。

过程

  1. 浏览至包含 MDB 的已部署企业应用程序。
  2. 在 MDB 中,浏览至其 JMS 激活规范。单击资源 -> JMS -> 激活规范 -> activation_specification_name
  3. 连续失败消息阈值输入值 1
  4. 失败消息重试之间的延迟输入值 5000
  5. 保存配置。
  6. 浏览至 MDB 正在侦听的目标。根据需要单击下列其中一条路径:
    • 服务集成 -> 总线 -> bus_name -> [目标资源] 目标 -> queue_name
    • 服务集成 -> 总线 -> bus_name -> [目标资源] 目标 -> topic_space_name
  7. 异常目标下,选择
  8. 每个消息的最大失败传递次数中输入值 5
  9. 将更改保存至主配置。
  10. 接收到 JMX 通知及指示 MDB(或端点)已暂停的日志条目时,调查 MDB 所使用的系统资源的问题。 虽然 MDB 已暂停,但因为未配置异常目标,所以 msg1 仍留在队列上。不会处理任何其他消息。
  11. 如果恢复 MDB 但带有失败消息的问题仍然存在,那么会在第一次重试该消息时达到最大失败传送限制,但因为未配置异常目标,所以该消息不会移至另一队列。相反,会在失败消息重试之间的延迟重试延迟时间间隔(在此方案中为 5 秒)期间对所有用户禁用整个队列点。经过此时间之后使用者再次开始。如果失败消息仍在该处并再次失败,那么会再次禁用该队列点 5 秒。此过程继续进行,直到您通过手动删除或解决问题来从队列中移除失败消息,这样做允许使用应用程序继续处理。
  12. 再次登录管理控制台,浏览至同一企业级应用程序并在 MDB 的管理面板上单击恢复。还可通过使用 JCA MBean 或脚本编制来恢复 MDB。初始 JMX 通知和日志条目指示用于恢复 MDB 的 MBean。 MDB 开始通过目标上的消息进行驱动。

结果

您已配置系统以使其在保留消息排序的同时避免外部资源发生故障。

下一步做什么

MDB 恢复时,JCA MBean 会发出 JMX 通知以指示 MDB 已恢复。会使用队列上的消息,重试已失败的消息,并且会落实事务。

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



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