Guy*_*Guy 6 .net publish-subscribe mq websphere-7 ibm-mq
我读了这篇文章
并且仍然不理解主题如何在MQ中工作的概念.在JMS中,我知道您可以在主题上发布消息,并且为了从它接收消息,您首先需要订阅它(在接收阶段使用订阅名称).
它在MQ中如何工作?我想写一个简单的场景(如在JMS中):
示例代码(.NET)会很有帮助
家伙
你看过包含的示例代码了吗?在默认安装中,它位于:
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());
}
Run Code Online (Sandbox Code Playgroud)
您的问题以JMS为例.请注意,您可以选择使用IBM XMS - .Net的可扩展消息服务客户端.XMS通过.Net实现JMS API,WMQ,WMB或WAS作为传输,因此您只需很少的修改就可以使用JMS代码..Net 2.0.0手册的消息服务客户端描述了该产品:
.NET
消息服务客户端.NET消息服务客户端提供了一个名为XMS的应用程序编程接口(API),它具有与Java消息服务(JMS)API相同的接口集.Message Service Client for .NET包含一个完全托管的XMS实现,可以被任何.NET兼容语言使用.XMS支持:
XMS应用程序可以使用以下类型的应用程序交换消息:
XMS应用程序可以连接并使用以下任何消息传递服务器的资源:
通过连接到WebSphere MQ队列管理器,XMS应用程序可以使用WebSphere MQ Enterprise Transport与WebSphere Event Broker或WebSphere Message Broker的代理进行通信.或者,XMS应用程序可以使用WebSphere MQ发布/预订代理.
如果您希望进一步探索,示例XMS代码驻留在前面提到的本机.Net示例下面的子目录中.样本在本手册的" 使用XMS样本应用程序"部分中进行了描述.
自.v7起,.Net支持已集成到WMQ中.如果您缺少样本,那么您的WMQ客户端安装是后台安装或未完全安装.最新的v7.0 WMQ Client for Windows可以下载为SupportPac MQC7.
XMS支持以SupportPac IA9H的形式提供.
| 归档时间: |
|
| 查看次数: |
6289 次 |
| 最近记录: |