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

时间:2013-04-04 18:50:56

标签: c# .net websphere ibm-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
  }    
}

另一种方法(发送) - 发送它。

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

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

1 个答案:

答案 0 :(得分:1)

只需检查MessageLength即可。

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

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