MessageProducer.send()对于特定主题来说太慢了

时间:2016-02-05 12:06:20

标签: c++ jms ibm-mq xms

我已经缩小了我面临的问题范围,结果发现"replyfeserver"在为特定主题创建时速度太慢{ {1}}:

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");

VS

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

我试过两者,它没有任何区别 - 至少我没有注意到它。

1 个答案:

答案 0 :(得分:0)

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

我会运行一条MQ跟踪然后与IBM打开一个PMR并给它们跟踪并说明请解释延迟。