我正在用C ++编写一个activemq生成器,它正在将地图消息写入.net平台上的activemq队列。当我使用相同的消息时,我使用NMSXGroupID (of the ActiveMQMapMessage type)
在.net
方面相应地路由消息。
private MyBytesMessage GetMyMessage(IMessage sourceMsg)
{
if (sourceMsg == null)
return null;
MyBytesMessage myMessage = null;
ActiveMQMapMessage bMessage = sourceMsg as ActiveMQMapMessage;
if (bMessage != null)
{
if (bMessage.Body.Keys.Count > 0)
{
byte[] messageBody = bMessage.Body.GetBytes("body") as byte[];
if (messageBody != null)
{
myMessage = new MyBytesMessage(messageBody);
myMessage.MessageGroupID = bMessage.NMSXGroupID;
}
}
}
return myMessage;
}
我想在编写消息时从C ++端设置相同的id。
答案 0 :(得分:1)
由于C ++ ActiveMQ客户端实现了CMS API,允许您通过消息属性访问器设置组ID值。您可以检查连接元数据类,以查找可以像在JMS中一样使用的所有属性的列表。
要设置组ID值,您需要使用JMSXGroupID属性,如下所示:
message->setStringProperty("JMSXGroupID", GROUPID);