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 に答える