【发布时间】:2021-06-09 08:38:41
【问题描述】:
我需要从 IBM MQ 队列中获取消息并将它们放入对象中。所以,我正在使用以下代码:
public MQMessage GetMessageFromQueue(string queueName)
{
MQMessage message = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
var queueMngrForReading = new MQQueueManager(_managerName, _connectionParams);
var queue = queueMngrForReading.AccessQueue(queueName, MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING);
queue.Get(message, gmo);
System.Console.Out.WriteLine("Message Data: " + message.ReadString(message.MessageLength));
return message;
}
问题是当我使用以下代码调用 Main 中的方法时:
MQClient mqClient = new MQClient();
mqClient.Connect(AppSettings.MQ.Manager);
string xml11 = mqClient.GetMessageFromQueue("PRQUEUE").ToString();
我从控制台中显示的消息中获取值,但对象 xml11 获取值“IBM.WMQ.MQMessage#013C8E0F”。
如何将 XML 消息放入对象 xml11 中?
谢谢。
【问题讨论】:
-
由于您的GetMessageFromQueue 正在返回一个MQMessage,您需要调用ReadString 方法来获取消息正文。我假设消息的发送者在发送消息时正在执行 WriteString 来设置消息正文。参考这里:ibm.com/support/knowledgecenter/SSFKSJ_9.2.0/…
标签: c# .net websphere ibm-mq message-queue