-1

あるキューから別のキューにメッセージを送信しています。たとえば、入力キューに空のメッセージがあり、実際のメッセージがある場合、コードがキューイングを開始すると、実際のメッセージは送信されません。最初の空のメッセージ。

Import queue:

     -> empty message
Test -> actual message

これは、送受信しているメッセージの一部です。

if (mqMsg.MessageLength > 0 && mqMsg.DataLength > 0)
{
messageData = mqMsg.ReadString(mqMsg.MessageLength);
}

パッティング

mqQueue.Put(mqMsg, mqPutMsgOpts);

これが実装方法です:

while(if any message is available)
{
  //go a read/get
  mqMsg = new MQMessage();
  mqGetMsgOpts = new MQGetMessageOptions();
  mqQueue.Get(mqMsg);
  if (mqMsg.MessageLength > 0 && mqMsg.DataLength > 0)
  {
   //posted to send method
  }    
}

別の方法 (送信) - 送信します。

 mqPutMsgOpts = new MQPutMessageOptions();
 mqQueue.Put(mqMsg, mqPutMsgOpts);

空のメッセージがある場合でもキューがメッセージを送信し続けるように、これを処理するにはどうすればよいですか?

4

1 に答える 1

1

MessageLength を確認するだけで十分です。

if(mqMsg.MessageLength > 0)
{
     // Send message to another queue.
}

しかし、本文のないメッセージがある理由を理解し、その問題を解決することが重要です。本文のないメッセージを送信するのはなぜですか?

于 2013-04-06T12:46:43.823 に答える