Skip to main content

プロダクションから RabbitMQ へのメッセージの送信

InterSystems IRIS 相互運用プロダクションは RabbitMQ パブリッシャになることができます。組み込みのビジネス・オペレーションを使用する、または RabbitMQ 送信アダプタを使用する独自のビジネス・オペレーションを構築するという、2 つのオプションがあります。プロダクションの外部で使用する API もあります。

ビジネス・オペレーションの使用法

インターシステムズは、カスタム・コードを記述することなく、RabbitMQ にメッセージを公開するために使用できる、組み込みのビジネス・オペレーションを提供しています。このビジネス・オペレーションを使用するには、以下の手順を実行します。

  1. EnsLib.RabbitMQ.OperationOpens in a new tab をプロダクションに追加します。"ビジネス・ホストの追加" を参照してください。

  2. このビジネス・ホストの設定を構成します。"RabbitMQ 設定" を参照してください。

  3. このビジネス・オペレーションに EnsLib.RabbitMQ.MessageOpens in a new tab 要求を送信するように、他のビジネス・ホストを構成します。

このビジネス・オペレーションは、EnsLib.RabbitMQ.MessageOpens in a new tab タイプのメッセージを受信すると、そのメッセージを RabbitMQ に公開します。

RabbitMQ メッセージ・クラス

EnsLib.RabbitMQ.MessageOpens in a new tab クラスには、以下を含め、メッセージを定義するためのいくつかのプロパティが含まれます。

  • exchange は、パブリッシャがメッセージを送信する RabbitMQ エクスチェンジを定義します。

  • routingKey は、エクスチェンジがメッセージをルーティングするために使用するルーティング・キーを定義します。

  • deliveryMode は、メッセージを永続的なものとして扱うか (値が 2 の場合)、一時的なものとして扱うか (値が 2 の場合) を定義します。

  • contentEncoding は、メッセージ・コンテンツのエンコードを定義します (UTF-8 など)。

  • encodedContent は、contentEncoding によって指定されたとおりにエンコードされるメッセージのコンテンツを定義します。

このクラスのメッセージ・プロパティの詳細な説明は、RabbitMQ のドキュメントOpens in a new tabを参照してください。

アダプタの使用法

組み込みのビジネス・オペレーションがニーズを満たさない場合、以下のように RabbitMQ 送信アダプタを直接使用できます。

  1. カスタム・ビジネス・オペレーション・クラスを作成します。

    • このクラスは Ens.BusinessOperationOpens in a new tab を拡張する必要があります。

    • ADAPTER パラメータは EnsLib.RabbitMQ.OutboundAdapterOpens in a new tab である必要があります。

    • このクラスは、メッセージ・マップを定義する必要があります。

      XData MessageMap
      {
      <MapItems>
        <MapItem MessageType="messageclass">
          <Method>methodname</Method>
        </MapItem>
        ...
      </MapItems>
      }
      
    • このクラスは、メッセージ・マップ内のすべてのメソッドを定義する必要があります。これらのメソッドは、メッセージ・ハンドラと呼ばれます。各メッセージ・ハンドラは、以下のシグニチャを持っている必要があります。

      Method Sample(pReq As RequestClass, Output pResp As ResponseClass) As %Status {
      }

      メッセージ・ハンドラは、ビジネス・オペレーションの Adapter プロパティとしてアクセス可能な、アダプタのインスタンス・メソッドを呼び出すことができます。これらのメソッドを呼び出すための一般的な構文は以下のとおりです。

       do ..Adapter.MethodName(arguments)

      RabbitMQ 送信アダプタには、以下のシグニチャを持つ SendMessage() というインスタンス・メソッドが 1 つあります。

      Method SendMessage(msg As EnsLib.RabbitMQ.Message) As %Status{
      }
  2. ビジネス・オペレーションをプロダクションに追加します。"ビジネス・ホストの追加" を参照してください。

  3. "RabbitMQ 設定" の説明に従って、このビジネス・ホストの設定を構成します。

  4. このビジネス・オペレーションに要求を送信するように、他のビジネス・ホストを構成します。

関連項目

FeedbackOpens in a new tab