【发布时间】: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:我应该在哪里做呢?是网上的东西吗?