[英]How can I put messages from IBM MQ queue to objects?
我需要從 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();
我從控制台中顯示的消息中獲取值,但 object xml11 獲取值“IBM.WMQ.MQMessage#013C8E0F”。
如何將 XML 消息放入 object xml11 中?
謝謝。
使用toString
您無法讀取MQMessage
的正文。
我會像這樣更改GetMessageFromQueue
:
public String 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);
String msgText = message.ReadString(message.MessageLength);
System.Console.Out.WriteLine("Message Data: " + msgText)
return msgText;
}
為了簡化您的代碼,我建議使用 XMS API,請參閱開發 XMS .NET 應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.