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

logo cloud disabled logo hybrid active logo server active logo rtf disabled

Mule アプリケーションからのイベント通知をデータベースに保存するように Runtime Manager を設定できます。

サードパーティソフトウェアへのデータの送信は、ローカルサーバにデプロイされたアプリケーションのみで行えます。 CloudHub にデプロイされたアプリケーションではサポートされません。

前提条件

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

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

使用している Runtime Manager エージェントのバージョンによっては、イベント追跡データベース内部ハンドラの ZIP ファイルをインストールする必要があります。

次のエージェントバージョンでは、必要な JAR ファイルがエージェントプラグインに含まれているため、ZIP ファイルのインストールは不要です。

  • 1.14.3 以降

  • 2.4.5 以降

次のエージェントバージョンでは、ZIP ファイルを手動でダウンロードしてインストールする必要があります。

  • 1.14.2 以前

  • 2.4.4 以前

ZIP ファイルをインとする手順は次のとおりです。

  1. イベント追跡データベース内部ハンドラの ZIP ファイル (​mule-agent-internal-handlers-db-1.5.1.zip​) をサポートに要求します。

  2. ZIP ファイルを ​{MULE_HOME}/plugins/mule-agent-plugin/lib/modules​ フォルダに展開します。

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

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

次の MySQL Server、Oracle、Microsoft SQL Server の設定例では、必須項目は ​driver​、​jdbcUrl​、​user​、​pass​ です。 イベントデータが保存される場所を指定する ​eventsTable​ 項目、​annotationsTable​ 項目、​businessTable​ 項目も設定できます。

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

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 の設定例

次の例は、MySQL データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

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. 次の場所から MySQL JDBC ドライバをダウンロードします。

  2. ZIP ファイルを抽出します。

  3. mysql-connector-java-{VERSION}.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 の設定例

次の例は、Oracle データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

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. 次の場所から Oracle JDBC ドライバをダウンロードします。

  2. GZ ファイルを抽出します。

  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 の設定例

次の例は、Microsoft SQL Server データベースと連携させるための Runtime Manager エージェントのセットアップ方法を示しています。

スキーマ

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. 次の場所から SQL Server 用の Microsoft JDBC ドライバをダウンロードします。

  2. sqljdbc%version%.tar.gz​ ファイルを抽出します。

  3. 適切な ​sqljdbc%version%.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