Обращаемся за советом по нижеуказанной проблеме корреляции COA.
Справочная информация : есть приложение A, которое передает данные в приложение B через MQ (ничего особенного - определение удаленной очереди, указывающее на локальное значение q def на удаленном QM).Где отправляющее приложение A запрашивает COA.Это стабильная настройка, работающая годами:
Приложение A -> QM.A [Q1] -канал-> QM.B [Q2] -> Приложение B
Здесь:
- Q1 - это удаленное определение q, указывающее на Q2.
Проблема : существует приложение C, которое требует точно такой же поток данных, который A отправляет B через MQ.=> требуется продублировать поток данных с учетом следующего ограничения.
Ограничение : невозможно изменить ни код, ни конфигурацию приложения A и B - дублирование потока данных от A до B должно быть прозрачным для приложений Aи B - A помещает сообщения в одну и ту же очередь Q1 на QM.A;B получает сообщения из той же очереди Q2 в QM.B
Предлагаемое решение : продублируйте канал на уровне MQ путем создания конфигурации Topic / subscirbers в QM приложения B:
Приложение A -> QM.A [Q1] -канал-> QM.B [QA-> T -> {S2, S3} -> {Q2, Q3}] -> {Приложение B,QM.C [Q4] -> App C}
Здесь:
- Q1 - обновлено свойство rname, чтобы указывать на QA для темы вместо Q2
- QA - псевдоним очереди для темы T
- T - тема
- S2, S3 - подписчики, публикующие данные в Q2 и Q3
- Q2 - без изменений, то же определение локальной очередигде приложение B использует из
- Q3 - определение удаленной очереди, указывающее на Q4
- Q4 - определение локальной очереди в QM.C, очередь с копией сообщений, отправленных из A в B
При такой настройке дублирование сообщений из приложения A в приложение B и C работает нормально.Но ... есть проблема.
Проблема : приложение A не может сопоставить COA, и это проблема.Я не уверен, что приложение A вообще не способно соотносить COA или (что более вероятно, предположить) не может сопоставить дополнительные COA, например, из QM.C
Любая идея или советочень ценится.