空消息和实际消息MQ客户机问题



我正在将消息从一个队列发送到另一个队列,例如,在我的输入队列中,如果有空消息,然后是实际消息,当代码开始排队时,一旦它看到第一个空消息,它就不会向我发送实际消息。

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
  }    
}

另一个方法(send) -发送它。

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

我如何处理这个,以便队列继续发送消息,即使有空消息?

只要检查MessageLength就足够了。

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

但重要的是要理解为什么有一个没有正文的消息,并解决这个问题。为什么会有人发一条没有尸体的信息?

最新更新