質問

私はこれを読みました 記事

そして、まだMQでトピックがどのように機能するかという概念をまだ理解していませんでした。 JMSでは、トピックに関するメッセージを公開できることを知っています。それからメッセージを受信するには、最初にサブスクライブする必要があります(受信フェーズでサブスクリプション名を使用)。

MQではどのように機能していますか? (JMSのように)の簡単なシナリオを書きたい:

  • 1.トピックに公開します
  • 2.トピックから受け取る - それは失敗します(私はまだ購読していません)
  • 3.購読
  • 4.受信 - 公開後に購読してから受け取るものはありません
  • 5.公開
  • 6.受信 - 成功

    サンプルコード(.NET)が役立ちます

  • 役に立ちましたか?

    解決

    付属のサンプルコードを見ましたか?デフォルトのインストールでは、次のように存在します。
    C:\Program Files\IBM\WebSphere MQ\tools\dotnet\samples

    MQPubSubSample.cs プログラムは、管理されたコードと管理されていないコードの耐久性と非耐久性の両方のサブスクリプションを示しています。それぞれの場合に最初にサブスクライブしてから公開しますが、質問で説明されているように、公開/購読/受信/出版/受信のユースケースに簡単に変更できます。 (ただし、まだ購読していないトピックから受け取ることはできません。)

    サンプルコードのセクションの1つは次のとおりです。

      // 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を例として参照しています。 .NETにIBM XMS-拡張可能なメッセージサービスクライアントを使用するオプションがあることに注意してください。 XMSは、WMQ、WMBを使用して.NETを介してJMS APIを実装しているか、輸送と同じように、変更がほとんどないJMSコードを使用できます。 .NET 2.0.0のメッセージサービスクライアント マニュアル 提供について説明します:


    .NETのメッセージサービスクライアント
    .NET用のメッセージサービスクライアントは、Javaメッセージサービス(JMS)APIと同じインターフェイスセットを持つXMSと呼ばれるアプリケーションプログラミングインターフェイス(API)を提供します。 .NET用のメッセージサービスクライアントには、XMSの完全に管理された実装が含まれています。これは、任意の.NET準拠言語で使用できます。 XMSサポート:

    • ポイントツーポイントスタイルのメッセージング
    • スタイルメッセージングを公開/購読します
    • 同期メッセージ配信
    • 非同期メッセージ配信

    XMSアプリケーションは、次のタイプのアプリケーションとメッセージを交換できます。

    • XMSアプリケーション
    • WebSphere MQ JMSアプリケーション
    • ネイティブWebSphere MQアプリケーション
    • WebSphereデフォルトメッセージングプロバイダーを使用しているJMSアプリケーション

    XMSアプリケーションは、次のメッセージングサーバーに接続し、リソースを使用できます。

    • WebSphere MQキューマネージャー - アプリケーションは、バインディングまたはクライアントモードのいずれかで接続できます。
    • WebSphere Service Integration Bus-アプリケーションは、直接TCP/IP接続を使用するか、TCP/IPでHTTPを使用できます。
    • WebSphereイベントブローカーまたはWebSphereメッセージブローカーのブローカー - WebSphere MQリアルタイムトランスポートを使用して、アプリケーションとブローカーの間でメッセージが送信され、構成によっては、WebSphere MQマルチキャストトランスポートを使用してメッセージをアプリケーションに配信できます。

    XMSアプリケーションは、WebSphere MQキューマネージャーに接続することにより、WebSphere MQ Enterprise Transportを使用して、WebSphere Event BrokerまたはWebSphere Message Brokerのブローカーと通信できます。または、XMSアプリケーションでは、WebSphere MQ Publish/Subscribe Brokerを使用できます。


    さらに探索したい場合、サンプルXMSコードは、以前に言及したネイティブ.NETサンプルの下のサブディレクトリにあります。サンプルはで説明されています XMSサンプルアプリケーションを使用します マニュアルのセクション。

    .NETサポートは、V7の時点でWMQに統合されています。サンプルが不足している場合、WMQクライアントのインストールはバックレベルまたは不完全にインストールされています。 Windows用の最新のV7.0 WMQクライアントはダウンロード可能です SupportPac MQC7.

    XMSサポートはとして配信されます supportpac ia9h.

    ライセンス: CC-BY-SA帰属
    所属していません StackOverflow
    scroll top