【问题标题】:Get CorId/Msg Id in Websphere MQ C++在 Websphere MQ C++ 中获取 CorId/Msg Id
【发布时间】:2014-04-22 23:39:39
【问题描述】:

有没有办法获取相关 ID/消息 ID 并将其存储到变量中?我想将它放入一个变量并将其存储到数据库中。

我正在考虑使用 MQMD。

MQMD *md;

std::string corid = md->CorrelId;

上面的代码不起作用。

请帮我解决这个问题。顺便说一句,我正在为 C++ 使用 Websphere MQ。

谢谢! :)

【问题讨论】:

  • 这似乎与stackoverflow.com/questions/22940046/… 完全相同,其中的响应基本上是“你不能这样做,因为这些字段是二进制的,不应该被强制转换成字符串。”
  • 对不起 T.Rob 我想我在上一篇文章中缺少一些声明。我想我得到了我想要的这个“correlID puzzel”。感谢您的努力! :)

标签: c++ ibm-mq mq


【解决方案1】:

MessageID、CorrelID 和 GroupID 都是字节数组。因此,不能按照您尝试的方式分配它们。而是执行以下操作来获取 messageID。您可以对 CorrelationID 和 GroupID 进行类似尝试。

  if ( queue.get( msg, gmo ) ) 
  {
      // Get the message id 
      char byMessageId[24];
      ImqBinary msglId = msg.messageId();

      // Copy the message to a buffer.
      msglId.copyOut(byMessageId,24);
  } 

希望这会有所帮助。

【讨论】:

  • 我会尝试并告诉你,顺便感谢你的帮助! :)
  • 像魅力一样工作,谢谢! :) 我刚刚添加了一些代码来获得我想要的输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
相关资源
最近更新 更多