Я пишу производитель activemq на C ++, который пишет сообщение карты в очередь activemq на платформе .net. Я использую 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 ++, когда я пишу сообщение.
Поскольку клиент C ++ ActiveMQ реализует API CMS, который позволяет вам устанавливать значения идентификатора группы с помощью средств доступа к свойствам сообщения. Вы можете проверить класс метаданных соединения для списка всех свойств, которые могут использоваться точно так же как в JMS.
Чтобы установить значение идентификатора группы, вам нужно использовать свойство JMSXGroupID следующим образом:
message->setStringProperty("JMSXGroupID", GROUPID);