如何在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 mapmessage中的消息组id

因为c++ ActiveMQ客户端实现了CMS API,允许您通过消息属性访问器设置组ID值。您可以检查连接元数据类,查看可以使用的所有属性的列表,就像在JMS中一样。

要设置组ID值,需要使用JMSXGroupID属性,如下所示:

  message->setStringProperty("JMSXGroupID", GROUPID);