2013-04-04 5 views
-1

Я отправляю сообщение из одной очереди в другую очередь, например, когда в моей очереди ввода, если есть пустое сообщение, тогда фактическое сообщение, когда код запускает очередь, не отправляет мне фактическое сообщение после того, как оно увидит первое пустое сообщение.Пустое сообщение и фактическое сообщение Ошибка клиента 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

'Возможно, вам следует использовать блок« Else »в вашем коде .. с« точками репутации выше 1 »можно было бы подумать, что вы понимаете, как построить базовый условный оператор [MSDN if Else] (http: // msdn .microsoft.com/en-us/library/5011f09h (v = vs.71) .aspx) – MethodMan

+0

Вы ищете какой-то цикл? Как цикл while? Я не могу понять, где проблема. – oleksii

+0

Я не совсем понял, в чем проблема. Не могли бы вы дать некоторую ясность? Что вы подразумеваете под пустым сообщением? сообщение без данных/тела? – Shashi

ответ

1

Достаточно просто проверить MessageLength.

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

Но важно понять, почему есть сообщение без тела и исправить эту проблему. Зачем кому-то посылать сообщение, у которого нет тела?

Смежные вопросы