【问题标题】:How to set message group id in activemq mapmessage in c++如何在c ++中的activemq mapmessage中设置消息组ID
【发布时间】:2015-08-16 03:57:34
【问题描述】:

我正在用 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# c++ activemq activemq-cpp


    【解决方案1】:

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

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

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

    【讨论】:

    • 我在 C++ activemq 中找不到 setCMSGroupId 访问器,请您帮我解决这个问题。
    • 已更新为在 C++ 中正确的执行方式,忘记了我们没有将设置器添加到该客户端。
    猜你喜欢
    • 2013-11-01
    • 1970-01-01
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2013-05-09
    • 2012-04-23
    相关资源
    最近更新 更多