0

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

4

1 回答 1

1

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

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

  message->setStringProperty("JMSXGroupID", GROUPID);
于 2015-06-02T16:45:32.090 回答