Anypoint Studio を使用した Aggregators Module 1.1 の設定 - Mule 4

Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。

Studio でモジュールを追加して設定する手順は、次のとおりです。

「アプリケーションログの表示」​で説明されているように、コネクタを実行するときに、リアルタイムでアプリケーションログを表示して問題を確認できます。

Studio で初めてコネクタを設定する場合は、​「Anypoint Studio を使用したコネクタの設定」​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​「Aggregators Module リファレンス」​を参照してください。

Mule プロジェクトを作成する

Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。

  1. Studio で、​[File (ファイル)] > [New (新規)] > [Mule Project (Mule プロジェクト)]​ を選択します。

  2. Mule プロジェクトの名前を入力して、​[Finish (完了)]​ をクリックします。

モジュールを Mule プロジェクトに追加する

Aggregators Module を Mule プロジェクトに追加して、XML コードにモジュールの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​pom.xml​ ファイルに必須の連動関係を追加します。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  2. [Add Dependencies to Project (連動関係をプロジェクトに追加)]​ ウィンドウで、検索項目に「​aggregators module​」と入力します。

  3. [Available modules (使用可能なモジュール)]​ で ​[Aggregators Module (Aggregator Module)]​ をクリックします。

  4. [Add (追加)]​ をクリックします。

  5. [Finish (完了)]​ をクリックします。

Studio でモジュールを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのモジュールを使用できません。

ソースの設定

ソースは、指定された条件が満たされたときにフローを開始します。 次のソースのいずれかを Aggregators Module で使用するように設定できます。

  • [HTTP] > [Listener]

    設定されたホストとポートで要求を受信するたびにフローを開始します。

  • Aggregator listener (アグリゲーターリスナー)

    参照されるアグリゲータースコープによりトリガーされる要素をリスンすることで、サブフローを開始します。
    リスナーで参照されるアグリゲータースコープが集約を完了すると、​[Aggregator listener (アグリゲーターリスナー)]​ はすべての集約された要素のリストを使用してサブフローをトリガーします。

たとえば、[Aggregator listener (アグリゲーターリスナー)] を設定する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで、​[Aggregators (アグリゲーター)] > [Aggregator listener (アグリゲーターリスナー)]​ を選択します。

  2. [Aggregator listener (アグリゲーターリスナー)]​ を Studio キャンバスにドラッグします。

  3. [Aggregator listener (アグリゲーターリスナー)]​ 設定画面で、必要に応じて ​[Display Name (表示名)]​ 項目の値を変更します。

  4. [Aggregator name (アグリゲーター名)]​ を、リスンするアグリゲータースコープの名前に設定します。

    アグリゲータースコープがその要素を解放すると、リスナーが実行されます。

  5. [Include timed out groups (タイムアウトグループを含める)]​ を選択し、タイムアウトによりグループが解放されたときに、リスナーがトリガーされるかどうかを示します。

    この設定オプションは、​[Time based aggregator (時間ベースのアグリゲーター)]​ スコープや ​[Size based aggregator (サイズベースのアグリゲーター)]​ スコープなど、グループ以外のアグリゲーターでも機能します。

アグリゲータースコープをフローに追加する

フローにモジュールスコープを追加するときは、そのモジュールで実行するアクションを指定しています。

Aggregators Module のスコープを追加する手順は、次のとおりです。

  1. [Mule Palette (Mule パレット)]​ ビューで ​[Aggregators (アグリゲーター)]​ を選択し、目的のスコープを選択します。

    • Group based aggregator (グループベースのアグリゲーター)

      要素をグループ ID でグループに集約できます。

    • Size based aggregator (サイズベースのアグリゲーター)

      定義済みのサイズ数の要素の集約が完了するまで要素を集約することができます。

    • Time based aggregator (時間ベースのアグリゲーター)

      定義済みの時間制限内で要素を集約できます。

  2. スコープを Studio キャンバスのソースの右にドラッグします。

Anypoint Studio の [Mule Palette (Mule パレット)] ビュー内の Aggregator Module スコープとソース
Figure 1. Studio での Aggregator Module スコープ

アグリゲーターのオブジェクトストアを設定する

どのアグリゲータースコープでも、グローバルオブジェクトストアを参照するか非公開オブジェクトストアを作成することで、オブジェクトストアを設定できます。

オブジェクトストアを設定する

Studio でグローバルオブジェクトストアを設定するには、次の手順に従います。

  1. フローからアグリゲータースコープを選択します。

  2. アグリゲータースコープ設定画面で、​[Advanced (詳細)]​ をクリックします。

  3. 緑のプラス記号 (+) をクリックして、グローバルオブジェクトストア設定を作成します。

  4. [Global Object store configuration (グローバルオブジェクトストア設定)]​ 画面で、​[Name (名前)]​ を ​aGlobalObjectStore​ に設定します。

  5. 必要な設定属性を入力して、​[OK]​ をクリックします。

次のスクリーンショットは、​[Group based aggregator (グループベースアグリゲーター)]​ スコープの ​[Advanced (詳細)]​ タブのオブジェクトストア設定を示しています。

「Object Store(*) (オブジェクトストア(*))」 項目では aGlobalObjectStore 設定が選択されています。

[Configuration XML (設定 XML)]​ ビューでは ​objectStore​ 設定は次のように表示されます。

<aggregators:group-based-aggregator name="globalOSAggregator"
                                   maxSize="10"
                                   objectStore="aGlobalObjectStore">
xml

非公開オブジェクトストアの設定

Studio で非公開オブジェクトストアを設定するには、XML コードを手動で更新します。

  1. フローからアグリゲータースコープを選択します。

  2. Studio キャンバスで ​[Configuration XML (設定 XML)]​ をクリックします。

  3. XML の非公開オブジェクトストア ​<os:private-object-store>​ を ​<aggregators:object-store>​ セクションの内側に追加します。次に例を示します。

<aggregators:size-based-aggregator  name="privateOSAggregator" maxSize="10">
    ...
    <aggregators:object-store>
        <os:private-object-store alias="privateObjectStore" persistent="false"/>
    </aggregators:object-store>
</aggregators:group-based-aggregator>
xml

アプリケーションログの表示

問題を確認するため、アプリケーションログを次の方法で表示できます。

  • アプリケーションを Anypoint Platform から実行している場合、アプリケーションログ出力は Anypoint Studio のコンソールウィンドウに表示されます。

  • コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログ出力は OS コンソールに表示されます。

アプリケーションのログファイル (​log4j2.xml​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​MULE_HOME/logs/<app-name>.log​ でアプリケーションログを表示することもできます。