Невозможно установить идентификаторы сообщений для сообщения jms при использовании фреймворка цитрусовых для выполнения тестового примера xml, который помещает сообщение в Websphere MQ.

Я использую структуру интеграции цитрусовых для выполнения тестовых случаев, которые помещают сообщения в IBM websphere MQ. Когда я отправляю специальные заголовки с заголовками сообщений jms. Я могу установить идентификатор корреляции, как указано в заголовке, но я не могу установить идентификатор сообщения. Вот заголовки, которые я отправляю

    <send endpoint="QueueEndPoint">
      <message>
      <resource="file:c:\payloads\payload.xml">
      <message>
      <header>
       <element name="Scenario" value="some thing"/>
       <element  name="instanceID" value="some thing"/>
       <element name="citrus_jms_correlationId" value="012345678910111213141516"/>  
<element name="citrus_jms_messageId" value="012345678910111213143121"/>
      </header> 

это идентификатор сообщения и идентификатор корреляции, отображаемый в IBM MQ


person kushma gonna    schedule 03.04.2018    source источник
comment
Пожалуйста, предоставьте и объясните, что на самом деле происходит.   -  person jwriteclub    schedule 03.04.2018
comment
После размещения сообщения в MQ. идентификатор корреляции отображается так же, как и в MQ, но идентификатор сообщения не соответствует значению, которое я дал. Я не знаю, что погода mq не принимает значение идентификатора сообщения или CItrus что-то делает, но идентификатор сообщения, который я вижу в MQ, был идентификатором сообщения по умолчанию, сгенерированным MQ.   -  person kushma gonna    schedule 03.04.2018


Ответы (2)


Плохая идея, очень плохая идея установить MessageId в MQ. Пусть MQ устанавливает и контролирует MessageId. Установка CorrelationId — это то, что вы должны установить.

На снимке экрана показано, что вы установили для CorrelationId значение «161514131211109876543212», что равно Hex = «313631353134313331323131313039383736353433323132».

person Roger    schedule 03.04.2018

Стандарт JMS говорит, что MessageId НЕ МОЖЕТ быть установлен приложениями:

При отправке сообщения JMSMessageID игнорируется. Когда метод send возвращает значение, оно содержит значение, назначенное поставщиком.

Хотя это можно переопределить в расширении, предоставляемом классами MQ JMS, для этого требуется дополнительные настройки, где вы явно заявляете, что хотите переопределить стандарт.

person Mark Taylor    schedule 04.04.2018