云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

华为云_网易数据库_怎么买

小七 141 0

这个博客描述了JMS发送方适配器中的死信队列选项。它描述了功能、何时使用它以及如何监视它。JMS发送方适配器中的死信处理可用于具有Enterprise Edition许可证的SAP Cloud Integration客户。

在云集成系统中接收到的某些消息(通常是大消息)有可能导致工作节点内存不足错误,因为处理消息需要太多内存。

如果使用JMS在异步解耦场景中处理此类消息,则消息通过入站流存储在JMS队列中,通常不存在占用内存的转换。但在出站流中,消息可能会导致上述问题:节点内存不足导致失败,云平台重启节点,消息从队列中再次轮询,从而导致另一个内存不足错误。节点重启会一次又一次地尝试处理消息,导致节点完全不可用。

为了避免这种情况,处理意外停止的消息只会重试两次。之后,消息将退出处理并存储在死信队列中。重新启动或删除此类消息需要手动操作。

前提条件:代理设置和JMS场景设置

博客Configure Asynchronous Messaging with Retry using JMS Adapter详细描述了如何使用JMS Adapter设置异步场景。

在JMS中的JMS Sender Channel

中配置死信处理发送方适配器,企业交流软件,死信队列可以从JMS适配器版本1.1开始配置。用于激活死信队列的复选框"死信队列"在"连接"选项卡上可用。默认情况下选中该复选框,这意味着死信处理处于活动状态。在第二次重试由于节点崩溃而无法完成的消息后,此消息将移到死信队列中,并且不会进行任何处理更进一步。重试次数不可配置。

死信队列处理是一项性能密集型操作,因此您应该预期会对性能产生重大影响。如果运行高负载场景,企业号应用,这种影响甚至更大。这是因为死信队列处理是基于数据库的,而且数据库的可扩展性不如JMS。

对于高负载场景,或者如果您确定在您的场景中只处理小消息,则应取消选中复选框以提高性能,但请务必牢记中断的风险。建议的配置是在使用的发送器适配器中配置大小检查,并使用此配置拒绝大消息,以避免大消息可能导致内存不足。不幸的是,并非所有的发送方适配器都支持大小检查。

如果打开旧的集成流,家庭人工智能,死信队列设置可能不可用,深度学习数据集,因为JMS适配器的版本太旧。要查找版本,请选择频道中的"技术信息"图标。如果要使用死信处理选项,请删除发件人频道,然后从调色板中添加新频道。然后您将获得最新版本。

死信队列配置未连接到博客中描述的显式重试处理配置使用JMS适配器配置异步消息传递重试。死信队列仅用于由于节点崩溃而无法再处理的消息。

由于处理过程中的错误而失败的消息,不要转到死信队列,但要么停留在正常处理中(具有定义的重试间隔),要么从JMS中删除(如果在显式重试建模中配置)。

监视

以检查消息是否已从处理中删除并移动到死信队列,购物返利,您可以使用云集成提供的监视工具。

一旦消息被JMS发送方适配器处理,消息锁监视器中就会显示此特定消息的处理锁。监视器位于"操作"视图的"管理锁"部分中。属于JMS发送方适配器的消息可以由组件JMS标识。Source列以JMS:

的格式告诉您在哪个JMS队列中处理消息。通常,消息处理完成后,此条目将被删除。在节点中断的情况下,处理无法完成,当节点启动时,消息被标记为错误,条目将从锁监视器中消失。大约20分钟后,将执行重试。如果由于另一个节点中断而无法完成处理,则会触发第二次重试。

第二次重试后,消息将被移动到死信队列,并可在队列监视器中找到(下一章将对此进行说明)。

您可以在消息队列监视器中检查已停止处理的消息,在"操作"视图的"管理存储"部分中,

如果消息的处理状态已被阻止,则表示这些消息已从处理中删除并移至死信队列。您还可以看到,没有为这些消息的下一次重试定义时间:

查找这些消息的最简单方法是使用筛选选项或基于状态排序。

您可以使用消息ID的直接链接直接跳转到发送到队列的消息的消息处理日志。在那里,您可以找到集成流名称、消息发送的时间以及处理的详细信息。

要找出消息是否导致了中断,您可以下载消息并检查其大小。在此分析的基础上,您可以决定是否从处理中完全删除消息、更改集成流和/或尝试再次发送消息: