【问题标题】:MessageProducer.send() is too slow for a particular topicMessageProducer.send() 对于特定主题来说太慢了
【发布时间】:2016-05-15 09:53:17
【问题描述】:

我已经缩小了我面临的问题的范围,结果发现 MessageProducer.send() 在为 特定 主题 "replyfeserver" 创建时太慢:

auto producer = context.CreateProducerFromTopic("replyfeserver");

producer->send(textMessage); //it is slow

在这里,对send() 的调用偶尔会阻塞长达 55-65 秒 - 几乎是在 4-5 次调用之后,一般情况下长达 5-15 秒。

但是,如果我使用其他主题,请说 "feserver.action.status"

auto producer = context.CreateProducerFromTopic("feserver.action.status");

producer->send(textMessage); //it is fast!

现在对send() 的调用会在几分之一秒内立即返回。我已经尝试过send() 与其他几个主题,它们都运行得足够快。

这个特定主题"replyfeserver" 可能存在哪些问题?为了诊断问题,我应该查看哪些内容?过去 2 个月我一直在使用这个主题。

我正在使用 XMS C++ API,请假设 context 对象是创建会话、目的地、消费者、生产者等的抽象。

我也想知道这两种方法有什么区别:

xms::Destination dest("topic://replyfeserver");

xms::Destination dest = session.createTopic("replyfeserver");

我都试过了,没有任何区别——至少我没有注意到。

【问题讨论】:

  • 我同意罗杰斯的评论
  • 最好的方法是打开 PMR。
  • @Shashi:我不明白。什么是 PMR?怎么打开?
  • 我的意思是向 IBM 提出支持票以分析延迟
  • @Shashi:我应该在哪里做呢?是网上的东西吗?

标签: c++ jms ibm-mq xms


【解决方案1】:

应该没有任何区别。就个人而言,我喜欢将我的主题放在一个层次结构中。即A.B.C

我会运行一个 MQ 跟踪,然后打开一个 IBM 的 PMR 并给他们跟踪并说请解释延迟。

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-03
    • 2021-12-26
    • 2015-01-17
    相关资源
    最近更新 更多