Anypoint Code Builder を使用した Database Connector の設定

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

新しいインテグレーションプロジェクトの作成

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

インテグレーションプロジェクトへのコネクタの追加

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

フローのトリガーの設定

トリガー (ソース) は、指定された条件が満たされたときにフローを開始します。 次のトリガーのいずれかを設定して、Database Connector で使用できます。

  • [Database (データベース)] > [On Table Row (テーブルの行)]​
    一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。

  • [HTTP] > [Listener]​
    設定されたホストとポートで要求を受信するたびにフローを開始する

  • Scheduler (スケジューラー)​
    時間ベースの条件が満たされたときにフローを開始します。

たとえば、​On Table Row​ ソースを設定する手順は、次のとおりです。

  1. [On Table Row]​ コンポーネントをキャンバスに追加します。

  2. キャンバスで ​[On Table Row]​ コンポーネントをクリックします。

  3. [General (一般)]​ タブで、次の属性を設定します。

    UI 項目 説明 必須

    Table (テーブル)

    選択元のデータベーステーブルの名前。

    はい

    Watermark column (ウォーターマーク列)

    この列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが処理されます。

    いいえ

    Id column (ID 列)

    [Watermark column (ウォーターマーク列)]​ と組み合わせて使用されます。これは行 ID とみなす列の名前です。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

    いいえ

    Scheduling strategy (スケジュール戦略)

    時間ベースの条件に基づいてフローの実行をトリガーします。この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​XML でのスケジュール戦略の設定​ を参照してください。

    はい

  4. [Advanced (詳細)]​ タブを選択して、次の属性を設定します。

    UI 項目 説明 必須

    Transactional action (トランザクションアクション)

    トランザクションの操作で使用できる結合アクションの種別:

    • NONE (デフォルト)

    • ALWAYS_BEGIN

    いいえ

    Transaction type (トランザクション種別)

    作成するトランザクションの種別 ([XA] または [Local (ローカル)])。使用できるかどうかは、Mule Runtime バージョンによって決まります。 [Local (ローカル)]​ がデフォルトです。

    いいえ

    Primary node only (プライマリノードのみ)

    このオプションを選択すると、クラスターで実行されるときに ​On Table Row​ トリガーがプライマリノード上でのみ実行されます。

    いいえ

    Redelivery policy (再配信ポリシー)

    この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Redelivery Policy (再配信ポリシー)」​を参照してください。

    いいえ

    Query timeout (クエリタイムアウト)

    JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を指定します。デフォルトでは、タイムアウトは使用されません (​0​)。

    いいえ

    Query timeout unit (クエリタイムアウト単位)

    使用する時間の単位を選択します。デフォルトは [SECONDS (秒)] です。

    いいえ

    Fetch size (フェッチサイズ)

    行が ​ResultSet​ から読み取られるときにデータベースからフェッチする行数を指定します。ストリーミングが ​true​ に設定されている場合、このプロパティは必須です。その場合、デフォルト値の ​10​ が使用されます。

    いいえ

    Max rows (最大行数)

    このメッセージプロセッサーで生成される ​ResultSet​ オブジェクトに含めることができる最大行数の制限を設定します。この制限を超えると、超過行は自動的に削除されます。

    いいえ

    Reconnection strategy (再接続戦略)

    この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Reconnect (再接続)」​、​「Reconnect Forever (繰り返し再接続)」​、および​XML での再接続戦略の設定​を参照してください。

    いいえ

XML でのコネクタの設定

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-maven-partial.adoc[]

データベース接続の設定

Database (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の XML の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。

Derby データベース接続の設定

XML エディターでは、この設定は次のように記述されます。

<db:config name="Database_Config" >
	<db:derby-connection database="derbyDB" />
</db:config>

汎用接続の設定

XML エディターでは、この設定は次のように記述されます。

<db:config name="Database_Config">
    <db:generic-connection driverClassName="org.h2.Driver"
    url="jdbc:h2:file:/tmp/datasenseDB"/>
</db:config>

Microsoft SQL Server 接続の設定

XML エディターでは、この設定は次のように記述されます。

<db:config name="Database_Config">
    <db:mssql-connection
    host="0.0.0.0"
    port="553"
    user="Max"
    password="password"
    databaseName="microsoftDB" />
</db:config>

MySQL データベース接続の設定

XML エディターでは、この設定は次のように記述されます。

<db:config name="Database_Config">
  <db:my-sql-connection
  host="0.0.0.0"
  port="3306"
  user="Max"
  password="POWERS"
  database="mysqlDB"/>
</db:config>

Oracle 接続の設定

XML エディターでは、この設定は次のように記述されます。

<db:config name="Database_Config">
  <db:oracle-connection
  host="192.168.99.100"
  port="1521" instance="xe"
  user="system"
  password="oracle" />
</db:config>

JDBC ドライバーの設定

接続を設定したら、JDBC ドライバーを追加します。次の例は、MySQL データベースのドライバーを追加する方法を示しています。

  1. Maven 連動関係をプロジェクトの ​pom.xml​ ファイルに追加します。

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.48</version>
    </dependency>
  2. Mule でドライバーの連動関係を Database Connector に公開するように ​pom.xml​ ファイルを設定します。

    <build>
        <plugins>
            <!-- Only used to declare the shared libraries-->
            <plugin>
                <groupId>org.mule.tools.maven</groupId>
                <artifactId>mule-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <sharedLibraries>
                        <sharedLibrary>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                        </sharedLibrary>
                    </sharedLibraries>
                </configuration>
            </plugin>
        </plugins>
    </build>

プロジェクトへのコンポーネントの追加

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

コンポーネント属性の設定

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

Bulk Delete 操作の設定

この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。

  1. [Bulk delete]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Bulk delete]​ コンポーネントをクリックします。

    Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

  3. [Advanced (詳細)]​ タブを選択して、次の属性を設定します。

    UI 項目 説明 必須

    Transactional action (トランザクションアクション)

    トランザクションに関する操作で実行できる結合アクションの種別。

    • ALWAYS_JOIN​

    • JOIN_IF_POSSIBLE​ (デフォルト)

    • NOT_SUPPORTED

    いいえ

    Query timeout (クエリタイムアウト)

    JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を指定します。デフォルトでは、タイムアウトは使用されません (​0​)。

    いいえ

    Query timeout unit (クエリタイムアウト単位)

    使用する時間の単位を選択します。デフォルトは [SECONDS (秒)] です。

    いいえ

    Fetch size (フェッチサイズ)

    行が ​ResultSet​ から読み取られるときにデータベースからフェッチする行数を指定します。ストリーミングが ​true​ に設定されている場合、このプロパティは必須です。その場合、デフォルト値の ​10​ が使用されます。

    いいえ

    Max rows (最大行数)

    このメッセージプロセッサーで生成される ​ResultSet​ オブジェクトに含めることができる最大行数の制限を設定します。この制限を超えると、超過行は自動的に削除されます。

    いいえ

    パラメーターの型

    [Parameter Type (パラメーター種別)]​ の配列。このパラメーターを使用して、必要に応じて (1 つまたは複数の) パラメーターの種別をクエリ内で指定できます。値を指定した場合、すべてのパラメーターを参照しなくてもよくなりますが、入力値に含まれないパラメーターは参照できません。

    いいえ

Bulk Insert 操作の設定

この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。

  1. [Bulk insert]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Bulk insert]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Bulk Update 操作の設定

この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。

  1. [Bulk update]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Bulk update]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Delete 操作の設定

この操作は、データベースのデータを削除します。

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Execute DDL 操作の設定

この操作は、データベースに対して DDL クエリを実行できます。

  1. [Execute DDL]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Execute DDL]​ コンポーネントをクリックします。

  3. [General (一般)]​ タブの ​[SQL Query Text (SQL クエリテキスト)]​ で、実行する SQL クエリのテキストを追加します。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Execute Script 操作の設定

この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトは提供された場合、パラメーターバインドなしで実行されます。

  1. [Execute Script]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Execute Script]​ コンポーネントをクリックします。

  3. [General (一般)]​ タブで、次の属性を設定します。

    UI 項目 説明 必須

    SQL Query Text (SQL クエリテキスト)

    実行する SQL クエリのテキスト。

    いいえ

    Script path (スクリプトパス)

    読み込むファイルの場所を指定します。ファイルはクラスパスまたはディスク上のリソースを参照できます。

    いいえ

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Insert 操作の設定

この操作は、データベースにデータを挿入します。

  1. [Insert]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Insert]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Query Single 操作の設定

この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、​Query Single​ 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。

  1. [Query Single]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Query Single]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Select 操作の設定

この操作は、データベースからデータを照会します。すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。つまり、必要に応じて ​fetchSize​ 行分のページが読み込まれます。この操作がトランザクション (​Try​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。

  1. [Select]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Select]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Stored Procedure 操作の設定

この操作は、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーが 1 つ以上の ​ResultSet​ インスタンスを返した場合、結果はすべて一度には読み込まれません。パフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。この動作は、​fetchSize​ 行分のページが必要に応じて遅延して読み込まれることを意味します。​Stored procedure​ 操作がトランザクション (​Try​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。

  1. [Stored Procedure]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Stored Procedure]​ コンポーネントをクリックします。

  3. [General (一般)]​ タブで、次の属性を設定します。

    UI 項目 説明 必須

    SQL Query Text (SQL クエリテキスト)

    実行する SQL クエリのテキスト。

    はい

    Input Parameters (入力パラメーター)

    JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップ。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: where id = :myParamName​)。マップの値には、各パラメーターの実際の割り当てが含まれます。

    いいえ

    Input-Output Parameters (入力-出力パラメーター)

    この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Stored Procedure」​を参照してください。

    いいえ

    Output Parameters (出力パラメーター)

    この属性は現在設定 UI で有効になっていません。XML エディターで設定してください。​「Stored Procedure」​を参照してください。

    いいえ

    Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

Update 操作の設定

この操作は、データベースのデータを更新します。

  1. [Update]​ 操作をキャンバスに追加します。

  2. キャンバスで ​[Update]​ コンポーネントをクリックします。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[] Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-config-db-general-tab.adoc[]

XML の例

XML での再接続戦略の設定

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc[]

XML でのストリーミング戦略の設定

ストリーミング戦略を使用して、Mule によるストリームの処理方法を設定できます。

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc[]

XML でのスケジュール戦略の設定

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc[]

新しい設定 XML ファイルの作成

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[]

関連情報

Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc[] * Database Connector リファレンス * ストリーミング戦略の設定