gpt4 book ai didi

.net - 使用 Websphere MQ 主题 .NET API

转载 作者:行者123 更新时间:2023-12-04 14:51:45 25 4
gpt4 key购买 nike

我读了 article

并且仍然不理解主题如何在 MQ 中工作的概念。
在 JMS 中,我知道您可以在主题上发布消息,并且为了接收来自它的消息,您首先需要订阅它(在接收阶段使用订阅名称)。

它在 MQ 中是如何工作的?我想写一个简单的场景(如在 JMS 中):

  • 1.发布到主题
  • 2. 从一个主题接收 - 这将失败(我还没有订阅)
  • 3.订阅
  • 4. 接收 - 因为我在发布后订阅,所以什么都没有收到
  • 5. 发布
  • 6.接收-成功

    示例代码(.NET)会有所帮助

    盖伊
  • 最佳答案

    你看过包含的示例代码吗?在默认安装中,它位于:C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samplesMQPubSubSample.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 通过 .Net 实现 JMS API,使用 WMQ、WMB 或 WAS 作为传输,因此您只需很少修改即可使用 JMS 代码。 Message Service Client for .Net 2.0.0手册 describes the offering :

    .NET 的消息服务客户端
    .NET 的消息服务客户端提供了一个名为 XMS 的应用程序编程接口(interface) (API),它与 ​​Java 消息服务 (JMS) API 具有相同的接口(interface)集。 .NET 的消息服务客户端包含一个完全托管的 XMS 实现,它可以被任何 .NET 兼容的语言使用。
    XMS 支持:
  • 点对点式消息传送
  • 发布/订阅样式消息
  • 同步消息传递
  • 异步消息传递

  • XMS 应用程序可以与以下类型的应用程序交换消息:
  • XMS 应用程序
  • WebSphere MQ JMS 应用程序
  • 原生 WebSphere MQ 应用程序
  • 使用 WebSphere 默认消息传递提供程序的 JMS 应用程序

  • XMS 应用程序可以连接到以下任何消息服务器并使用其资源:
  • WebSphere MQ 队列管理器 - 应用程序可以以绑定(bind)或客户端模式进行连接。
  • WebSphere 服务集成总线 - 应用程序可以使用直接 TCP/IP 连接,也可以使用基于 TCP/IP 的 HTTP。
  • WebSphere Event Broker 或 WebSphere Message Broker 的代理 - 使用 WebSphere MQ 实时传输在应用程序和代理之间传输消息,并且根据配置,可以使用 WebSphere MQ 多播传输将消息传递到应用程序。

  • 通过连接到 WebSphere MQ 队列管理器,XMS 应用程序可以使用 WebSphere MQ Enterprise Transport 与 WebSphere Event Broker 或 WebSphere Message Broker 的代理进行通信。或者,XMS 应用程序可以使用 WebSphere MQ 发布/订阅代理。

    如果您想进一步探索,示例 XMS 代码位于前面提到的 native .Net 示例下方的子目录中。样本在 Using the XMS Sample Applications 中进行了描述。手册的部分。

    从 v7 开始,.Net 支持已集成到 WMQ 中。如果您缺少示例,那么您的 WMQ 客户端安装是后级或未完全安装。适用于 Windows 的最新 v7.0 WMQ 客户端可下载为 SupportPac MQC7 .

    XMS 支持以 SupportPac IA9H 的形式提供。 .

    关于.net - 使用 Websphere MQ 主题 .NET API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517675/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com