ActiveMQ CMS - 具有CMSPriority的消费者选择器

时间:2013-06-11 14:45:09

标签: activemq activemq-cpp

我已在activemq配置中激活优先级消息,并且优先级正常工作,即当我发送X消息时,其中一半优先级为0,其中一半优先级为9,消费者以正确的顺序接收消息

但是,当我使用CMSPriority > 0CMSPriority < 4等选择器调用createConsumer()方法时,不会收到任何消息。

以下是相关的消费者代码:

mSession = mConnection->createSession(Session::INDIVIDUAL_ACKNOWLEDGE);
mDestination = mSession->createQueue( mDestURI );
mConsumer = mSession->createConsumer(mDestination, "CMSPriority < 4");

当我将最后一行更改为mConsumer = mSession->createConsumer(mDestination);时,会收到所有消息,且优先级正确。

任何人都可以解释这种行为吗?

1 个答案:

答案 0 :(得分:0)

C ++客户端不会将选择器语句转换为正常的JMS命名约定,JMSPriority是消息选择器的关键,尝试使用它并查看它是否解决了问题。