Сообщения MQ поступают как MQRFH2 вместо MQSTR - PullRequest
1 голос
/ 30 апреля 2019

У нас есть веб-служба ASP.NET, которая получает текстовую и целевую информацию и отправляет MQ-сообщения с нашего сервера на другой сервер Windows с помощью IBM WebSphere MQ Client.

У нас был установлен v6, и все работало нормально, отправляясообщения на сервер с установленной версией v9.0.0.1.Мы обновили наш сервер с v6 до v9.

Теперь сообщения принимаются как заголовки типа MQHRF2, когда эти сообщения явно отправляются как заголовки MQSTR.

Это, вероятно, связано собновление с v6-> v9.Любые идеи о том, что может быть причиной этого, были бы очень полезны, поскольку я в растерянности.

РЕДАКТИРОВАТЬ: Пример кода:

Это сжатая версия того, как мы взаимодействуем с MQAPI в нашем веб-приложении:

MQEnvironment.Hostname = "TEST_HOST";
MQEnvironment.Channel = "TEST_CHANNEL";
MQEnvironment.Port = 1414; // Default MQ Port
var queueMgr = new MQQueueManager("TEST", new Hashtable());

var openOptions = MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_OUTPUT + MQC.MQOO_SET_ALL_CONTEXT;
var queue = queueMgr.AccessQueue("QueueName", openOptions);

var message = new MQMessage();
message.ApplicationIdData = ".xml";
message.Write(Encoding.UTF8.GetBytes("test"));
message.Format = MQC.MQFMT_STRING;
message.Persistence = MQC.MQPER_PERSISTENT;
message.CorrelationId = MQC.MQCI_NEW_SESSION;

var putOptions = new MQPutMessageOptions();
putOptions.Options += MQC.MQPMO_SET_IDENTITY_CONTEXT + MQC.MQPMO_SYNCPOINT;

queue.Put(message, putOptions);
queueMgr.Commit();

1 Ответ

2 голосов
/ 14 мая 2019

Проблема здесь в том, что у нас есть сторонний инструмент AppDynamics, установленный и работающий на этом сервере.Этот инструмент используется для управления производительностью.Этот инструмент мешает сообщениям MQ, вызывая поведение у меня есть детали;сообщения принимаются в формате MQHRF2.

Это отмечено в документации IBM: https://www.ibm.com/support/knowledgecenter/en/SSYHZ9_5.5.0/com.ibm.omegamon_apm.doc/troubleshooting/zapm_issues.htm

  • AppDynamics динамически добавляет свойство сообщения MQ к сообщениям, которые нужно отслеживать, чтопередается в сообщении через заголовок MQRFH2.Перед настройкой AppDynamics убедитесь, что ваши прикладные программы не подвержены этой модификации сообщений.Примерами приложений, которые могут быть затронуты, являются приложения, ожидающие содержимое сообщения в определенном месте сообщения без обхода возможных дополнительных заголовков в сообщении.

Эта проблема может быть обнаружена путем переключения на &отключите сервис AppDynamics на сервере.Когда служба остановлена, все сообщения принимаются в MQSTR при отправке как MQSTR.

AppDynamics уже был установлен и запущен, когда на сервере был установлен MQ Client v6.Эта проблема начала возникать только при обновлении до MQ Client v9.

...