Runtime Manager から外部データベースへのイベントデータの送信

logo cloud disabled logo hybrid active logo server active logo pcf disabled

いくつかの設定を行うだけで、実行中の Mule アプリケーションによって生成されたイベント通知をデータベースに簡単に保存することができます。

サードパーティソフトウェアへのデータの送信は、現在ローカルサーバにデプロイされたアプリケーションのみで使用可能な機能です。Runtime Manager から CloudHub にデプロイするアプリケーションでは使用できません。「デプロイメント戦略」を参照してください。

また、Pivotal Cloud Foundry (PCF) にデプロイされたアプリケーションでも使用できません。

前提条件

次のソフトウェアがインストール済みであることを確認してください。

  • Mule – バージョン 3.6 以降

  • API ゲートウェイスタンドアロン – バージョン 2.1.0 以降 (API ゲートウェイを使用して構築されるアプリケーションを使用する場合)

  • Runtime Manager エージェントプラグインのバージョン 1.3.0 以降

Runtime Manager エージェントのインストール

まず、Runtime Manager エージェントの最新バージョンをインストールする必要があります。Runtime Manager エージェントは Mule からメッセージの送信を行います。サードパーティソフトウェアにイベント情報を送信するには、Runtime Manager エージェントのバージョン 1.3.0 以降を使用する必要があります。

イベント追跡データベース内部ハンドラのインストール

こちらから API Analytics 追跡データベース内部ハンドラをダウンロードして、{MULE_HOME}/plugins/mule-agent-plugin/lib/modules フォルダに解凍します。

エージェントの設定可能項目

最新の Runtime Manager エージェントとイベント追跡データベース内部ハンドラを API ゲートウェイにインストールしたら、{MULE_HOME}/conf/mule-agent.yml 設定ファイルを変更して内部ハンドラを有効にします。

MySQL Server、ORACLE、Microsoft SQL Server の設定例を次に示します。

必須項目は driverjdbcUrluserpass ですが、イベントデータが保存される eventsTableannotationsTablebusinessTable も設定できます。

項目 データ型 説明 デフォルト値

driver

String (文字列)

デーベースサーバとの通信に使用される JDBC ドライバを表します。

必須

jdbcUrl

String (文字列)

データベースサーバの JDBC URL を表します。

必須

user

String (文字列)

デーベースサーバに接続するためのユーザ名。

必須

pass

String (文字列)

データベースサーバに接続するためのパスワード。

必須

eventsTable

String (文字列)

エージェントがイベントを保存するテーブルの名前を表します。

省略可能

MULE_EVENTS

annotationsTable

String (文字列)

エージェントがメインイベントに関連付けられた注釈を保存するテーブルの名前を表します。

省略可能

MULE_EVENTS_ANNOTATIONS

businessTable

String (文字列)

エージェントがメインイベントに関連付けられたカスタムビジネスイベントを保存するテーブルの名前を表します。

省略可能

MULE_EVENTS_BUSINESS

提案する設定

一般的ないくつかのデータベースを使用するエージェントのセットアップ例を次に示します。

MySQL

スキーマ

CREATE TABLE MULE_EVENTS (
  id                  CHAR(36)     NOT NULL,
  action              VARCHAR(500) NULL,
  application         VARCHAR(500) NULL,
  mule_message        LONGTEXT     NULL,
  mule_message_id     VARCHAR(36)  NULL,
  notification_type   VARCHAR(500) NULL,
  path                VARCHAR(500) NULL,
  resource_identifier VARCHAR(500) NULL,
  timestamp           BIGINT       NOT NULL,
  source              TEXT         NULL,
  PRIMARY KEY (id)
);

CREATE TABLE MULE_EVENTS_ANNOTATIONS (
  id               CHAR(36)     NOT NULL,
  event_id         CHAR(36)     NOT NULL,
  annotation_type  VARCHAR(100) NULL,
  annotation_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  KEY FK_MULE_EVENTS_ANNOTATIONS_MULE_EVENTS_IDX (event_id),
  CONSTRAINT FK_MULE_EVENTS_ANNOTATIONS_MULE_EVENTS
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id)
    ON DELETE CASCADE
);

CREATE TABLE MULE_EVENTS_BUSINESS (
  id             CHAR(36)     NOT NULL,
  event_id       CHAR(36)     NOT NULL,
  business_key   VARCHAR(30)  NOT NULL,
  business_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  KEY FK_MULE_EVENTS_BUSINESS_IDX (event_id),
  CONSTRAINT FK_MULE_EVENTS_BUSINESS_MULE_EVENTS
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id)
    ON DELETE CASCADE
);

内部ハンドラ設定

  1. http://dev.mysql.com/downloads/connector/j/ から MySQL JDBC ドライバをダウンロードします。

  2. ZIP ファイルを展開し、mysql-connector-java-VERSION-bin.jar ファイルを取得します。

  3. この JAR ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml ファイルを変更して次を含めます。

    ---
      mule.agent.tracking.handler.database:
        enabled: true
        driver: com.mysql.jdbc.Driver
        jdbcUrl: jdbc:mysql://192.168.61.128/mule
        user: root
        pass: test

ORACLE

スキーマ

CREATE TABLE MULE_EVENTS (
  id                  CHAR(36)     NOT NULL,
  action              VARCHAR(500) NULL,
  application         VARCHAR(500) NULL,
  mule_message        CLOB         NULL,
  mule_message_id     VARCHAR(36)  NULL,
  notification_type   VARCHAR(500) NULL,
  path                VARCHAR(500) NULL,
  resource_identifier VARCHAR(500) NULL,
  timestamp           NUMBER       NOT NULL,
  source              CLOB         NULL,
  PRIMARY KEY (id)
);

CREATE TABLE MULE_EVENTS_ANNOTATIONS (
  id               CHAR(36)     NOT NULL,
  event_id         CHAR(36)     NOT NULL,
  annotation_type  VARCHAR(100) NULL,
  annotation_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  CONSTRAINT FK_MEA_ME
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id) ON DELETE CASCADE
);

CREATE INDEX FK_MAE_IDX ON MULE_EVENTS_ANNOTATIONS (event_id);

CREATE TABLE MULE_EVENTS_BUSINESS (
  id             CHAR(36)     NOT NULL,
  event_id       CHAR(36)     NOT NULL,
  business_key   VARCHAR(30)  NOT NULL,
  business_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  CONSTRAINT FK_MEB_ME
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id) ON DELETE CASCADE
);

CREATE INDEX FK_MEB_IDX ON MULE_EVENTS_BUSINESS (event_id);

内部ハンドラ設定

  1. http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html から Oracle JDBC ドライバをダウンロードします。

  2. ZIP ファイルを展開し、JAR ファイルを取得します。

  3. JAR ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml ファイルを変更して次を含めます。

    ---
      mule.agent.tracking.handler.database:
        enabled: true
        driver: oracle.jdbc.OracleDriver
        jdbcUrl: jdbc:oracle:thin:@192.168.61.128/XE
        user: root
        pass: test

Microsoft SQL Server

スキーマ

CREATE TABLE MULE_EVENTS (
  id                  CHAR(36)     NOT NULL,
  action              VARCHAR(500) NULL,
  application         VARCHAR(500) NULL,
  mule_message        VARCHAR(MAX) NULL,
  mule_message_id     VARCHAR(36)  NULL,
  notification_type   VARCHAR(500) NULL,
  path                VARCHAR(500) NULL,
  resource_identifier VARCHAR(500) NULL,
  timestamp           BIGINT       NOT NULL,
  source              VARCHAR(MAX) NULL,
  PRIMARY KEY (id)
);

CREATE TABLE MULE_EVENTS_ANNOTATIONS (
  id               CHAR(36)     NOT NULL,
  event_id         CHAR(36)     NOT NULL,
  annotation_type  VARCHAR(100) NULL,
  annotation_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  CONSTRAINT FK_MULE_EVENTS_ANNOTATIONS_MULE_EVENTS
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id)
    ON DELETE CASCADE
);

CREATE INDEX FK_MULE_EVENTS_ANNOTATIONS_MULE_EVENTS_IDX ON MULE_EVENTS_ANNOTATIONS (event_id);

CREATE TABLE MULE_EVENTS_BUSINESS (
  id             CHAR(36)     NOT NULL,
  event_id       CHAR(36)     NOT NULL,
  business_key   VARCHAR(30)  NOT NULL,
  business_value VARCHAR(255) NULL,
  PRIMARY KEY (id),
  CONSTRAINT FK_MULE_EVENTS_BUSINESS_MULE_EVENTS
  FOREIGN KEY (event_id) REFERENCES MULE_EVENTS (id)
    ON DELETE CASCADE
);

CREATE INDEX FK_MULE_EVENTS_BUSINESS_IDX ON MULE_EVENTS_BUSINESS (event_id);

内部ハンドラ設定

  1. https://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=11774 から Microsoft JDBC ドライバをダウンロードします。

  2. sqljdbc_4_%version%.tar.gz ファイルを展開し、sqljdbc4%version%_.jar ファイルを取得します。

  3. JAR ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。

  4. {MULE_HOME}/conf/mule-agent.yml ファイルを変更して次を含めます。

    ---
      mule.agent.tracking.handler.database:
        enabled: true
        driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
        jdbcUrl: jdbc:sqlserver://192.168.61.128:1433;databaseName=Mule;
        user: root
        pass: test

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub