如何在c++中设置activemq mapmessage中的消息组id
本文关键字:消息 id mapmessage 设置 c++ activemq | 更新日期: 2023-09-27 17:52:16
我正在用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。
因为c++ ActiveMQ客户端实现了CMS API,允许您通过消息属性访问器设置组ID值。您可以检查连接元数据类,查看可以使用的所有属性的列表,就像在JMS中一样。
要设置组ID值,需要使用JMSXGroupID属性,如下所示:
message->setStringProperty("JMSXGroupID", GROUPID);