Mule アプリケーションからのイベント通知をデータベースに保存するように Runtime Manager を設定できます。
サードパーティソフトウェアへのデータの送信は、ローカルサーバーにデプロイされたアプリケーションのみで行えます。 CloudHub にデプロイされたアプリケーションではサポートされません。
前提条件
次のソフトウェアがインストールされていることを確認してください。
-
Mule バージョン 3.6 以降
-
API ゲートウェイスタンドアロンバージョン 2.1.0 以降
-
Runtime Manager エージェントバージョン 1.3.0 以降
エージェントの更新については、「Runtime Manager エージェントのインストールまたは更新」を参照してください。
イベント追跡データベース内部ハンドラーのインストール
使用している Runtime Manager エージェントのバージョンによっては、イベント追跡データベース内部ハンドラーの ZIP ファイルをインストールする必要があります。
次のエージェントバージョンでは、必要な JAR ファイルがエージェントプラグインに含まれているため、ZIP ファイルのインストールは不要です。
-
1.14.3 以降
-
2.4.5 以降
次のエージェントバージョンでは、ZIP ファイルを手動でダウンロードしてインストールする必要があります。
-
1.14.2 以前
-
2.4.4 以前
ZIP ファイルをインとする手順は次のとおりです。
-
イベント追跡データベース内部ハンドラーの ZIP ファイル (
mule-agent-internal-handlers-db-1.5.1.zip) をサポートに要求します。 -
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 項目も設定できます。
| 項目 | データ型 | 説明 | 型 | デフォルト値 |
|---|---|---|---|---|
|
String (文字列) |
データベースサーバーとの通信に使用される JDBC ドライバー。 |
必須 |
|
|
String (文字列) |
データベースサーバーの JDBC URL。 |
必須 |
|
|
String (文字列) |
データベースサーバーに接続するために使用するユーザー名。 |
必須 |
|
|
String (文字列) |
データベースサーバーに接続するためのパスワード。 |
必須 |
|
|
String (文字列) |
エージェントがイベントを保存するテーブルの名前。 |
省略可能 |
|
|
String (文字列) |
エージェントがメインイベントに関連付けられた注釈を保存するテーブルの名前。 |
省略可能 |
|
|
String (文字列) |
エージェントがメインイベントに関連付けられたカスタムビジネスイベントを保存するテーブルの名前。 |
省略可能 |
|
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
);
内部ハンドラー設定
-
次の場所から MySQL JDBC ドライバーをダウンロードします。
-
ZIP ファイルを抽出します。
-
mysql-connector-java-{VERSION}.jar ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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);
内部ハンドラー設定
-
次の場所から Oracle JDBC ドライバーをダウンロードします。
-
GZ ファイルを抽出します。
-
JAR ファイルを
{MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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);
内部ハンドラー設定
-
次の場所から SQL Server 用の Microsoft JDBC ドライバーをダウンロードします。
-
sqljdbc%version%.tar.gz ファイルを抽出します。 -
適切な
sqljdbc%version%.jar ファイルを {MULE_HOME}/plugins/mule-agent-plugin/lib/modules にコピーします。 -
{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