ネイティブAPIを使用して.Netクライアントを使用してリモートMQから論理的にグループ化されたメッセージを受信しようとしています[amqmdnet-ネイティブAPIを使用してJavaクライアントによって配置されたWebSphereMQClassesfor.NET]。
論理的にグループ化されたメッセージを取得している間、そのグループ内のすべてのメッセージにいくつかのヘッダー情報が表示されます。これらの情報は、各エディター[notepad ++、editplusなど]で異なって表示されます。
以下に指定されたヘッダー情報は、そのグループ内のすべての論理メッセージに「MDE」のように追加されます。
以下のようにgetmessageoptions
、を使用しています。openoptions
mintMQQueueOpenOptions = IBM.WMQ.MQC.MQOO_INPUT_SHARED + IBM.WMQ.MQC.MQOO_FAIL_IF_QUIESCING
mobjMQGetMessageOptions = New MQGetMessageOptions
mobjMQGetMessageOptions.Options = IBM.WMQ.MQC.MQGMO_NO_SYNCPOINT + IBM.WMQ.MQC.MQGMO_FAIL_IF_QUIESCING
'mobjMQGetMessageOptions.Options = mobjMQGetMessageOptions.Options + MQC.MQGMO_LOGICAL_ORDER 'Or MQC.MQGMO_ALL_MSGS_AVAILABLE
そのグループ内のすべての論理メッセージを読み取るためのコードスニペット、
'=================================
' INTANTIATE THE MQ MESSAGE OBJECT
objMQMessage = New MQMessage
objMQMessage.Format = MQC.MQFMT_STRING
'=================================
' CLEAR THE MESSAGE VARIABLE
strMQMessage = ""
Do
'============================
' GET THE MESSAGE FROM THE MQ
mobjMQQueue.Get(objMQMessage, mobjMQGetMessageOptions)
'============================
' READ THROUGH THE MESSAGE
strMQMessage += objMQMessage.ReadString(objMQMessage.MessageLength)
'============================
' SET GMO.MATCHOPTIONS TO GROUP ID, INITIALLY IT WAS SET TO "MQC.MQMO_NONE"
mobjMQGetMessageOptions.MatchOptions = MQC.MQMO_MATCH_GROUP_ID
'============================
' DO UNTIL - MESSAGE IS THE LAST IN THE GROUP OR THE GROUP CONSISTS OF ONLY ONE MESSAGE.
Loop While (mobjMQGetMessageOptions.GroupStatus <> MQC.MQGS_LAST_MSG_IN_GROUP)
'====================================
' COLLECT THE MESSAGE IN AN ARRAYLIST
If Not String.IsNullOrEmpty(strMQMessage) Then objMQMessageList.Add(strMQMessage)
'============================
' COMMIT THE FETCH OPERATION
mobjMQQueueManager.Commit()
各メッセージからこのヘッダー情報を削除するにはどうすればよいですか?