首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQ消息被延迟数天

MQ消息被延迟数天
EN

Stack Overflow用户
提问于 2011-03-31 11:28:02
回答 1查看 2K关注 0票数 1

我们使用IBM来处理WebSphere消息。当接收到SWIFT消息时,它将在处理过程中被处理并放入本地队列中。情况如下:

外部世界> Q1 > App > Q2 > App > Q3 > App

队列是本地队列。但是,当消息到达Q1/Q2/Q3的应用程序时,出现了相当大的延迟。就像日子一样。这是任意发生的。我们不知道为什么会发生这种情况。大部分的信息很快就会传递出去,但在3-4天内会有几条消息晚到。

所有这些都发生在事务中,我们使用Atomikos作为事务管理器。

以前有没有人遇到过类似的问题?任何帮助都是非常感谢的。

谢谢你,美春。

EN

回答 1

Stack Overflow用户

发布于 2011-04-04 03:35:20

有许多方法可以延迟WebSphere MQ消息,诊断可能需要一些检测工作。以下是一些更常见的原因:

  1. 消息卡在同步点下面。虽然一条消息在同步点下停留几天是不寻常的,但我已经看到了它的发生。问题是,某些应用程序设计成在单个事务中对多条消息进行批处理,当消息未到达批处理多个时,其余的消息将静坐等待另一条消息到达并关闭该批处理。
  2. 消息卡在同步点下面。在另一种情况下,程序逻辑在读取下一条消息之前不会提交同步点。当多个线程正在处理消息时,负载的分布不一定在所有线程之间都是一致的,如果负载较轻,则可能会缺少消息。
  3. 浏览成孤儿的消息。在这种情况下,消息到达的优先级高于当前的浏览游标。如果重新扫描间隔设置得非常高,而且流量也很大,则可能需要一段时间才能将浏览光标重置到队列的顶部。
  4. 程序错误您没有提到您正在使用的WMQ客户端和服务器的哪个版本(希望两者都在7.0!)但偶尔也会出现导致线程挂起的问题。这些可以将同步点下的消息绑定起来。访问最新版本的FixPack并检查名为“问题修复在.”的链接总是一个好主意。查看APAR是否解决了您的特定问题。如果是的话,应用最新的Fix。

要开始诊断,请使用DIS QSTATUS命令来显示队列上的输入和输出句柄数、消息年龄和任何未完成的工作单元。您还可以使用SupportPac MA0W中的exit获取给定队列上所有API调用的可读的跟踪。这可能是一个非常有价值的诊断工具,因为您可以准确地知道消息在同步点下停留了多长时间,它是否被不断地倒转和重新读取,API调用使用了哪些选项,等等。您甚至可以将跟踪限制在特定队列或特定线程上,如果需要让它运行一段时间,这是很有帮助的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5499073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档