如何在c ++

时间:2015-06-02 11:23:43

标签: c# c++ activemq activemq-cpp

我正在用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。

1 个答案:

答案 0 :(得分:1)

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

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

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