Вы смотрели на пример кода? При установке по умолчанию он находится по адресу:
C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samples
Программа MQPubSubSample.cs
иллюстрирует как долговременные, так и недолговечные подписки на управляемый и неуправляемый код. В каждом случае он сначала подписывается, затем публикуется, но вы можете легко изменить его в соответствии с вашим вариантом использования публикации / подписки / получения / публикации / получения, как описано в вопросе. (Вы не сможете получать сообщения из темы, на которую еще не подписались.)
Вот один из разделов из примера кода:
// Managed/nondurable
string topicName = DEFAULT_TOPIC_STRING;
string topicObject = null;
int openOptionsForGet = MQC.MQSO_CREATE | MQC.MQSO_FAIL_IF_QUIESCING | MQC.MQSO_MANAGED | MQC.MQSO_NON_DURABLE;
int destType = MQC.MQOT_TOPIC;
try
{
destForGet = mqQMgr.AccessTopic(topicName, topicObject, MQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, openOptionsForGet);
messageForPut = new MQMessage();
messageForPut.WriteString(DEFAULT_MESSAGE_DATA);
mqQMgr.Put(destType, topicObject, null, topicName, messageForPut);
messageForGet = new MQMessage();
destForGet.Get(messageForGet);
string messageDataFromGet = messageForGet.ReadLine();
if(!DEFAULT_MESSAGE_DATA.Equals(messageDataFromGet))
Console.WriteLine("Incorrect Message Received.");
destForGet.Close();
}
catch(MQException mqE)
{
Console.WriteLine("MQException caught. " + mqE.ToString());
}
Ваш вопрос ссылается на JMS в качестве примера. Помните, что у вас есть возможность использовать IBM XMS - Extensible Message Service Client для .Net. XMS реализует JMS API через .Net с WMQ, WMB или WAS в качестве транспорта, так что вы можете использовать код JMS с минимальными изменениями. Клиент службы сообщений для .Net 2.0.0 , руководство описывает предложение :
Клиент службы сообщений для .NET
Клиент службы сообщений для .NET предоставляет интерфейс прикладного программирования (API) под названием XMS, который имеет тот же набор интерфейсов, что и API службы сообщений Java (JMS). Клиент службы сообщений для .NET содержит полностью управляемую реализацию XMS, которая может использоваться любым языком, совместимым с .NET.
XMS поддерживает:
- обмен сообщениями в стиле «точка-точка»
- обмен сообщениями в стиле публикации / подписки
- Синхронная доставка сообщений
- Асинхронная доставка сообщений
Приложение XMS может обмениваться сообщениями со следующими типами приложений:
- Приложение XMS
- Приложение WebSphere MQ JMS
- Собственное приложение WebSphere MQ
- Приложение JMS, которое использует поставщика сообщений WebSphere по умолчанию
Приложение XMS может подключаться и использовать ресурсы любого из следующих серверов обмена сообщениями:
- Администратор очередей WebSphere MQ. Приложение может подключаться как в режиме привязок, так и в режиме клиента.
- Шина интеграции служб WebSphere. Приложение может использовать прямое соединение TCP / IP или HTTP по TCP / IP.
- Брокер WebSphere Event Broker или WebSphere Message Broker - сообщения передаются между приложением и брокером с помощью WebSphere MQ Real-Time Transport и, в зависимости от конфигурации, сообщения могут доставляться в приложение с помощью WebSphere MQ Multicast Transport.
При подключении к администратору очередей WebSphere MQ приложение XMS может использовать WebSphere MQ Enterprise Transport для связи с брокером WebSphere Event Broker или WebSphere Message Broker. В качестве альтернативы, приложение XMS может использовать брокера публикации / подписки WebSphere MQ.
Если вы хотите продолжить изучение, образец кода XMS находится в подкаталогах ниже собственных примеров .Net, упомянутых ранее. Образцы описаны в разделе Использование примеров приложений XMS данного руководства.
Поддержка .Net интегрирована в WMQ начиная с v7. Если вам не хватает примеров, значит, ваша клиентская установка WMQ находится на обратном уровне или установлена не полностью. Последняя версия WMQ-клиента v7.0 для Windows доступна для загрузки под SupportPac MQC7 .
Поддержка XMS поставляется в виде SupportPac IA9H .