簡體   English   中英

如何在c#中讀取格式類型為MQEVENT的IBM WebSphere MQ消息

[英]How can I read a IBM WebSphere MQ message of format type MQEVENT in c#

我可以從隊列中獲取事件消息。 我得到消息屬性。 我很確定MQEVENT類型是PCF格式,但是我似乎找不到任何有關如何接收該消息並將其轉化為人類可讀格式的好的文檔。

會計令牌
ApplicationIdData
應用程序原始數據
BackoutCount 0
BackoutCount 0
字符集437
補全代碼0
CorrelationId System.Byte []
數據長度236
數據偏移量0
編碼546
到期-1
反饋0
格式化MQEVENT
GroupId System.Byte []
MessageFlags 0
MessageId System.Byte []
MessageLength 236
MessageSequenceNumber 1
訊息類型8
偏移0
原始長度-1
持久性0
優先級0
PutApplicationName NTPMFG01
PutApplicationType 7
PutDateTime 3/19/2010 10:29:08 PM
原因碼0
ReasonName MQRC_OK
ReplyToQueueManagerNameNTPMFG01
ReplyToQueueName
報告0
TotalMessageLength 236
用戶身份
版本1

這是消息。
$? -? D 0 MFG01? D-0 MF G.CUST.CAT嗎? #¤? $? %? &?

如果(myMQMessage.Format.CompareTo(MQC.MQFMT_EVENT)== 0)我認為它需要處理兩次。 首先使用MQCFH處理PCF標頭

BuildMQCFH(new IBM.WMQ.PCF.MQCFH(myMQMessage));

public void BuildMQCFH(IBM.WMQ.PCF.MQCFH eventMessageHeader) {
  int reasonForEvent = eventMessageHeader.Reason;
}

然后您必須將DataOffset重置為0

myMQMessage.DataOffset = 0;

第二步,用PCFParameter處理PCF參數。 BuildPcfMessage(新的IBM.WMQ.PCF.PCFMessage(myMQMessage));

public void BuildPcfMessage(IBM.WMQ.PCF.PCFMessage pcfMessage) {
  IBM.WMQ.PCF.PCFParameter[] pcfParameters = pcfMessage.GetParameters();
  afflictedQueueManager = pcfParameters[0].GetValue().ToString();
  afflictedQueue = pcfParameters[1].GetValue().ToString();
}

MQMessage,PCF.PCFMessage和MQCF各自執行一個readbyte(s)來移動偏移量,之后不進行任何重置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM