使用WebSphere MQ主题.NET API
-
12-10-2019 - |
题
我读了 文章
而且仍然不了解主题如何在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());
}
您的问题将JMS作为示例。请注意,您可以选择使用IBM XMS- .NET的可扩展消息服务客户端。 XMS使用WMQ,WMB或作为传输的.NET实现JMS API,因此您可以使用几乎没有修改的JMS代码。这 .NET 2.0.0的消息服务客户端 手动的 描述产品:
.NET的消息服务客户端
.NET的消息服务客户端提供了一个称为XMS的应用程序编程接口(API),该界面具有与Java消息服务(JMS)API相同的接口集。 .NET的消息服务客户端包含XMS的完全管理的实现,可以由任何符合.NET的语言使用。 XMS支持:
- 点对点样式消息传递
- 发布/订阅样式消息传递
- 同步消息传递
- 异步消息传递
XMS应用程序可以使用以下类型的应用程序交换消息:
- XMS应用程序
- WebSphere MQ JMS应用程序
- 本机WebSphere MQ应用程序
- 使用WebSphere默认消息传递提供商的JMS应用程序
XMS应用程序可以连接并使用以下任何消息传递服务器的资源:
- WebSphere MQ队列管理器 - 该应用程序可以在绑定或客户端模式下连接。
- WebSphere服务集成总线 - 应用程序可以使用直接的TCP/IP连接,也可以通过TCP/IP使用HTTP。
- WebSphere事件经纪人或WebSphere消息代理的经纪人 - 使用WebSphere MQ实时运输在应用程序和经纪人之间传输消息,并且根据配置,可以使用WebSphere MQ Multicast Transport将消息传递到应用程序。
通过连接到WebSphere MQ队列管理器,XMS应用程序可以使用WebSphere MQ Enterprise Transport与WebSphere Event Event Broker或WebSphere Message Message Message Broker进行通信。另外,XMS应用程序可以使用WebSphere MQ发布/订阅代理。
如果您想进一步探索,则示例XMS代码位于下面提到的本机.NET样本下方的子目录中。样品在 使用XMS样本应用程序 手册的部分。
从V7开始,将.NET支持集成到WMQ中。如果您缺少样品,则WMQ客户端安装是背面或不完全安装的。 Windows的最新v7.0 WMQ客户端可下载 支持PAC MQC7.
XMS支持被交付为 支持PAC IA9H.