-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 回答