私は3つのメッセージを送信しています
Message1 - 相関 ID:5000
空のメッセージ (本文なし) - 相関 ID:5001
Message2 - 相関 ID:5002
私の送信キューはこのように処理されます
Message1 - 相関 ID:5000
Message1-correlation id:5001 => 同じ前のメッセージが空のメッセージに上書きされました。*
Message2 - 相関 ID:5002
上記の 2 行目は Message1 ではなく、空である必要があります。何かご意見は?
私の取得方法
mqGetMsgOpts = new MQGetMessageOptions();
if (mqQueue != null)
{
//Get options for the messsage
mqGetMsgOpts.Options = MQC.MQGMO_BROWSE_FIRST | MQC.MQGMO_WAIT | MQC.MQOO_INQUIRE;
mqGetMsgOpts.MatchOptions = MQC.MQMO_NONE;
mqGetMsgOpts.WaitInterval = 5000; // 5 seconds limit for waiting
}
if (mqMsg.MessageLength > 0 && mqMsg.DataLength > 0)
{
messageData = mqMsg.ReadString(mqMsg.MessageLength);
}
長さのチェックを行わないと、ストリーム リーダー関連の例外が発生します。
私のプット方法
if(mqQueue==null)
mqQueue = mqQMgr.AccessQueue("Queue Name", MQC.MQOO_OUTPUT | MQC.MQOO_INPUT_SHARED | MQC.MQOO_INQUIRE);
mqMsg.WriteString(message);