2013-11-11 5 views
0

Я строй инструмента, который помещает сообщения в очереди и положить ответ/ответа на другом (как правило, очередь заглушки)IBM MQ Series ответного сообщения не сразу в очереди ответов

Все работает нормально, но это, кажется, что количество времени, которое требуется для получения ответного сообщения, и поместить очередь очереди больше, чем оно есть на самом деле. `

Try 
     PublicMQVariable.MQMessage_Reply = New MQMessage 
     PublicMQVariable.MQMessage_Reply.CorrelationId = PublicMQVariable.MQMessage_Request.MessageId 
     PublicMQVariable.MQMessage_Reply.MessageType = MQC.MQMT_REPLY 
     PublicMQVariable.MQGetMessageOptions_Response = New MQGetMessageOptions 
     PublicMQVariable.MQGetMessageOptions_Response.Options = MQC.MQGMO_WAIT + MQC.MQGMO_FAIL_IF_QUIESCING 
     PublicMQVariable.MQGetMessageOptions_Response.MatchOptions = MQC.MQMO_MATCH_CORREL_ID 
     PublicMQVariable.MQGetMessageOptions_Response.WaitInterval = PublicMQVariable.MyTimeOut 
     PublicMQVariable.MyStopwatch = Stopwatch.StartNew() 
     PublicMQVariable.MQQueue_Reply.Get(PublicMQVariable.MQMessage_Reply, PublicMQVariable.MQGetMessageOptions_Reply) 
     PublicMQVariable.MyStopwatch.Stop() 
     PublicMQVariable.MyReplyMessage = PublicMQVariable.MQMessage_Reply.ReadString(PublicMQVariable.MQMessage_Reply.MessageLength) 
    Catch ex As MQException 
     MsgBox("MQException: compCode: " & ex.CompCode.ToString() & " Reason: " + ex.Reason.ToString() & " - " & ex.Message) 
     MQDisconnectAndClose() 
     Return 
    End Try 

Код выше только часть, где ответ«get'` Секундомер говорит ответ получен в +/- 2000 миллисекунд, но когда я просматриваю очередь ответа, то ответное сообщение только присутствует примерно через 18 секунд (глядя на мои часы и просматривая очередь постоянно)

  1. Это использование секундомера точной?
  2. Почему сообщение должно быть видимым в очереди сообщений?
  3. Есть ли возможность захватить ответное сообщение, как только оно будет сгенерировано системой? (до того, как он даже поставлен в очередь ответов)

ответ

0

Вы используете MQExplorer для просмотра ответного сообщения? MQExplorer имеет предварительно определенный интервал обновления 15 секунд. Через каждые 15 секунд MQExplorer обновляет содержимое представления. Он отобразит сообщения, присутствующие в очереди, последний статус канала и т. Д.

+0

Шаши, я не думаю, что я понимаю ваш вопрос. Является ли MQExporer функцией IBM Websphere? –

+0

MQExplorer - это инструмент администрирования WebSphere MQ. Я пытался понять, как вы просматриваете очередь ответов. – Shashi

+0

О, нет, я не использую MQExplorer. У меня для этого код нормальный код «получить сообщение». –

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