Эквивалент темы MQ JMS в C/C++

У меня нет четких знаний о MQ с использованием TOPICS, и я искал в документации IBM, и я не могу найти способ подписаться с помощью C++ на тему. Я видел, что в Java вы можете зайти в панель управления Websphere и настроить его там. Программно, как это можно сделать на С++? В С++ я подключался к очередям с помощью функций MQCONN, MQOPEN и для получения сообщений использую MQGET и MQPUT, но думаю, что подключаюсь только к очередям, а не к ТОПИКАМ. Я тоже хочу понять, правильно ли я понимаю, отличается ли подключение к теме от подключения к очереди. Заранее спасибо, ребята.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
383
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Рекомендуется использовать C MQ API при программировании на C++, поскольку классы C++ стабилизированы и не обновлялись (и не будут) классами для тем согласно Центр знаний IBM: Разработка приложений C++.

IBM WebSphere® MQ Version 7.0, enhancements to the IBM MQ programming interfaces are not applied to the C++ classes.

Чтобы использовать тему из C MQ API, вот краткий пример псевдокода. Также ознакомьтесь с образцами, предоставленными IBM, такими как amqspuba.c и amqssuba.c.

Публикация в теме

MQOD mqod  {MQOD_DEFAULT};
MQCONN...
mqod.ObjectType = MQOT_TOPIC;
mqod.Version    = MQOD_VERSION_4; /* To use ObjectString field */
mqod.ObjectString.VSPtr = argv[1];
mqod.ObjectString.VSLength = MQVS_NULL_TERMINATED;
MQOPEN(hConn,
       &mqod,
       MQOO_OUTPUT,
       &hObj,
       &CompCode, &Reason);
MQPUT....

Подписаться на тему

MQSD mqsd  {MQSD_DEFAULT};
MQCONN...
mqsd.Options = MQSO_CREATE | MQSO_NON_DURABLE | MQSO_MANAGED;
mqsd.ObjectString.VSPtr = argv[1];
mqsd.ObjectString.VSLength = MQVS_NULL_TERMINATED;
MQSUB(hConn,
      &mqsd,
      &hObj,
      &hSub,
      &CompCode, &Reason);
MQGET from hObj...

Спасибо, возможно, я неправильно выразил свой вопрос, но вы поняли мою точку зрения. Используйте MQ, разработанный IBM, для подписки и публикации в теме. Я не смог найти варианты, которые вы мне дали. Спасибо Мораг.

ElBarajas 19.07.2019 01:59

Пожалуйста, примите ответ Мораг, если он был полезен. Мораг, у вас есть ссылка на заявление о стабилизации от IBM, для какой версии это произошло? Я знаю, например, что классы IBM для Java были стабилизированы совсем недавно IBM v8.0 или v9.0.

JoshMc 19.07.2019 03:35

Спасибо, Мораг, это как раз то, что я искал!

JoshMc 20.07.2019 02:27

Мораг знаете ли вы, имеет ли значение, чтобы IBM не использовал термин стабилизированный по отношению к C++? В случае Java IBM KC заявляет: «IBM не будет вносить дальнейшие улучшения в классы IBM MQ для Java, и они функционально стабилизированы на уровне, поставляемом в IBM MQ версии 8.0». Я видел аналогичные утверждения для других функций.

JoshMc 06.05.2020 10:20

Привет @JoshMc - Не уверен, что именно ты спрашиваешь. IBM заявила, что классы C++ также стабилизированы. На самом деле C++ был первым, стабилизированным во временных рамках V7.0. Отсюда и первая строка моего ответа. Почему вы говорите, что IBM не использует этот термин?

Morag Hughson 07.05.2020 03:24

В ссылке KC не упоминается стабилизация.

JoshMc 07.05.2020 03:31

Насколько я помню, в письме-анонсе (возможно, в том, в котором было объявлено о выпуске MQ V7.0) говорилось, что классы C++ стабилизированы. Конечно, в то время мы часто использовали этот термин в IBM Hursley. Я не знаю, почему этот термин не используется в KC, если он используется для классов Java. Возможно, во времена V7.0 этот термин не считался общеупотребительным, а в V8.0 он стал использоваться гораздо чаще, и авторы документации уловили это.

Morag Hughson 07.05.2020 23:20

Спасибо Мораг за историю. Интересно узнать предысторию Ретта.

JoshMc 16.05.2020 11:34

Другие вопросы по теме