# mulesoft Database Connector (db-connector) - Full Documentation # 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\[\] ## [](#configuring-trigger)フローのトリガーの設定 トリガー (ソース) は、指定された条件が満たされたときにフローを開始します。 次のトリガーのいずれかを設定して、Database Connector で使用できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler (スケジューラー)**​ 時間ベースの条件が満たされたときにフローを開始します。 [anypoint-code-builder::acb-component-scheduler.adoc](https://docs.mulesoft.com/jp/anypoint-code-builder/acb-component-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 での再接続戦略の設定​を参照してください。

いいえ

## [](#configuring-connector-in-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\[\] ## [](#configuring-database-connection)データベース接続の設定 Database (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の XML の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。 ### [](#configuring-derby)Derby データベース接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ### [](#configuring-generic)汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ### [](#configuring-microsoft-sql)Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ### [](#configuring-mysql)MySQL データベース接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ### [](#configuring-oracle)Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#configuring-jdbc)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加します。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Maven 連動関係をプロジェクトの ​`pom.xml`​ ファイルに追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#adding-components-to-project)プロジェクトへのコンポーネントの追加 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ## [](#configuring-component-attributes)コンポーネント属性の設定 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$configure-acb-connectors-partial.adoc\[\] ### [](#configuring-bulk-delete)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 つまたは複数の) パラメーターの種別をクエリ内で指定できます。値を指定した場合、すべてのパラメーターを参照しなくてもよくなりますが、入力値に含まれないパラメーターは参照できません。

いいえ

### [](#configure-bulk-insert)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\[\] ### [](#configuring-bulk-update)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\[\] ### [](#configuring-delete)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\[\] ### [](#configuring-execute-ddl)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\[\] ### [](#configuring-execute-script)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\[\] ### [](#configuring-insert)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\[\] ### [](#configuring-query-single)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\[\] ### [](#configuring-select-operation)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\[\] ### [](#configuring-stored-procedure)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\[\] ### [](#configuring-update-operation)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-examples)XML の例 ### [](#configuring-reconnection-strategy)XML での再接続戦略の設定 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ### [](#configuring-streaming-strategy)XML でのストリーミング戦略の設定 ストリーミング戦略を使用して、Mule によるストリームの処理方法を設定できます。 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ### [](#scheduling-strategy)XML でのスケジュール戦略の設定 Unresolved include directive in modules/ROOT/pages/database-connector-acb.adoc - include::connectors::partial$acb-xml-examples.adoc\[\] ## [](#create-new-config-xml)新しい設定 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 リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) \* [ストリーミング戦略の設定](https://docs.mulesoft.com/mule-runtime/latest/streaming-about) # Anypoint Studio を使用した Database Connector 1.10 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.10/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.10/database-documentation) - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-driver-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Database Connector 1.12 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.12/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.12/database-documentation) - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-driver-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Database Connector 1.13 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成する](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.13/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.13/database-documentation) - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-driver-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Database Connector 1.14 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成する](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-driver-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Database Connector 1.8 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.8/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] の Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の \[Global Element Configuration (グローバル要素設定)\] ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.8/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Anypoint Studio を使用した Database Connector 1.9 の設定 Anypoint Studio (Studio) エディターは、Mule アプリケーション、プロパティ、および設定ファイルの設計と更新に役立ちます。 Studio でコネクタを追加および設定する手順は、次のとおりです。 1. [Mule プロジェクトを作成します](#create-mule-project)​。 2. [コネクタを Mule プロジェクトに追加します](#add-connector-to-project)​。 3. [コネクタのフローのソースを設定します](#configure-input-source)​。 4. [フローにコネクタの操作を追加します](#add-connector-operation)​。 5. [コネクタのグローバル要素を設定します](#configure-global-element)​。 [「アプリケーションログの表示」](#view-app-log)​で説明されているように、コネクタを実行するときに、アプリケーションログを表示して問題を確認できます。 Studio で初めてコネクタを設定する場合は、​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio)​を参照してください。このトピックを参照した後、コネクタ項目についての詳細情報が必要な場合は、​[「Database Connector リファレンス」](https://docs.mulesoft.com/jp/db-connector/1.9/database-documentation)​を参照してください。 ## [](#create-mule-project)Mule プロジェクトを作成する Studio で、コネクタを追加および設定する新しい Mule プロジェクトを作成します。 1. Studio で、​**\[File (ファイル)\] > \[New (新規)\] > \[Mule Project (Mule プロジェクト)\]**​ を選択します。 2. Mule プロジェクトの名前を入力して、​**\[Finish (完了)\]**​ をクリックします。 ## [](#add-connector-to-project)コネクタを Mule プロジェクトに追加する Database Connector を Mule プロジェクトに追加して、XML コードにコネクタの名前空間およびスキーマの場所を自動的に入力し、プロジェクトの ​`pom.xml`​ ファイルに必須の連動関係を追加します。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[(X) Search in Exchange ((X) Exchange 内を検索)\]**​ をクリックします。 2. **\[Add Dependencies to Project (連動関係をプロジェクトに追加)\]**​ ウィンドウで、検索項目に「​`database`​」と入力します。 3. **\[Available modules (使用可能なモジュール)\]**​ で ​**\[Database Connector\]**​ をクリックします。 4. **\[Add (追加)\]**​ をクリックします。 5. **\[Finish (完了)\]**​ をクリックします。 Studio でコネクタを Mule プロジェクトに追加しても、Studio ワークスペースの他のプロジェクトはそのコネクタを使用できません。 ## [](#configure-input-source)ソースの設定 ソースは、指定された条件が満たされたときにフローを開始します。 次の入力元のいずれかを Database Connector で使用するように設定できます。 - **\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ 一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成して、フローを開始します。 - **\[HTTP\] > \[Listener\]**​ 設定されたホストとポートで要求を受信するたびにフローを開始する - **Scheduler**​ 時間ベースの条件が満たされたときにフローを開始する たとえば、​**\[On Table Row (テーブルの行)\]**​ ソースを設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database (データベース)\] > \[On Table Row (テーブルの行)\]**​ を選択します。 2. **\[On Table Row (テーブルの行)\]**​ を Studio キャンバスにドラッグします。 3. **\[On Table Row (テーブルの行)\]**​ 設定画面で、必要に応じて ​**\[Display Name (表示名)\]**​ 項目の値を変更します。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックして、アプリケーション内のすべてのソースのインスタンスで使用できるグローバル要素を設定します。 5. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックして、ウィンドウを閉じます。 6. **\[On Table Row (テーブルの行)\]**​ 設定画面の ​**\[Table (テーブル)\]**​ で、選択元のテーブルの名前を指定します。 ## [](#add-connector-operation)フローにコネクタの操作を追加する フローにコネクタの操作を追加すると、そのコネクタで実行する特定の操作をすぐに定義できます。 Database Connector の操作を追加する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、​**\[Database Connector\]**​ を選択し、目的の操作を選択します。 2. その操作を Studio キャンバスの入力元の右にドラッグします。 次のスクリーンショットは、Anypoint Studio の \[Mule Palette (Mule パレット)\] ビューの Database Connector の操作を示しています。 ![Database Connector の操作](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-operations.png) Figure 1. Database Connector の操作 ## [](#configure-global-element)コネクタのグローバル要素を設定する コネクタを設定する場合、アプリケーション内のそのコネクタのすべてのインスタンスで使用できるグローバル要素を設定することをお勧めします。Database Connector は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。最も一般的なデータベース (MySQL、Oracle、および Microsoft SQL Server) に容易に接続できるように、このコネクタにはさまざまな接続種別が含まれます。 Database Connector のグローバル要素を設定する手順は、次のとおりです。 1. Studio キャンバスで操作を選択します。 2. 操作の設定画面で、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で、この設定に指定する接続種別を選択します。 - **Data Source Reference Connection (データソース参照接続)** - **Derby Connection (Derby 接続)** - **Generic Connection (汎用接続)** - **Microsoft SQL Server Connection (Microsoft SQL Server 接続)** - **MySQL Connection (MySQL 接続)** - **Oracle Connection (Oracle 接続)** 1. **\[General (一般)\]**​ タブで、コネクタのデータベース接続情報を指定します。 2. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 3. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 4. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule が指定されたデータベースに接続できることを確認します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Anypoint Studio の Database Connector の ​**\[Global Element Configuration (グローバル要素設定)\]**​ ウィンドウを示しています。 ![Database Connector の \[Global Element Configuration (グローバル要素設定)\]](_images/database-global-configuration.png) Figure 2. Database Connector の \[Global Element Configuration (グローバル要素設定)\] ## [](#view-app-log)アプリケーションログの表示 問題を確認するため、アプリケーションログを次の方法で表示できます。 - アプリケーションを Anypoint Platform から実行している場合、出力は Anypoint Studio のコンソールウィンドウに表示される。 - コマンドラインから Mule を使用してアプリケーションを実行している場合、アプリケーションログは OS コンソールに表示される。 アプリケーションのログファイル (​`log4j2.xml`​) でログファイルパスがカスタマイズされていない場合、デフォルトの場所 ​`MULE_HOME/logs/.log`​ でアプリケーションログを表示することもできます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Anypoint Studio を使用したコネクタの設定](https://docs.mulesoft.com/connectors/introduction/intro-config-use-studio) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.9/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.10 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle、 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。Database Connector は JDBC に準拠しています。互換性の問題を回避するために、接続設定で JDBC に準拠しているドライバーが使用されていることを確認してください。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザー: 以下を参照 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-studio) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザー: 以下を参照 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.12 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。Database Connector は JDBC に準拠しています。互換性の問題を回避するために、接続設定で JDBC に準拠しているドライバーが使用されていることを確認してください。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples)​を参照してください。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#database-connector-および-runtime-fabric-tls-設定)Database Connector および Runtime Fabric TLS 設定 Database Connector 操作を使用する Mule アプリケーションを作成し、Runtime Fabric を介して Mule アプリケーションをデプロイする場合、設定できる TLS バージョンは、JDK またはランタイムによって制限されます。ドライバーでは、TLS で保護されたソケットを使用して接続する JDK 機能が使用されます。Runtime Fabric 設定でセットアップされた TLS バージョンを確認します。 これは、Java セキュリティメカニズム上に構築されていないライブラリや、何らかのネイティブ実装 (JNI) がドライバーの実装で使用される場合は考慮されません。そのような場合は、ドライバーの実装でセットアップされた TLS バージョンを確認します。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.13 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。Database Connector は JDBC に準拠しています。互換性の問題を回避するために、接続設定で JDBC に準拠しているドライバーが使用されていることを確認してください。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザー: 以下を参照 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-studio) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザー: 以下を参照 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.14 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。Database Connector は JDBC に準拠しています。互換性の問題を回避するために、接続設定で JDBC に準拠しているドライバーが使用されていることを確認してください。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザー: 以下を参照 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-studio) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザー: 以下を参照 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.8 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザー: 以下を参照 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-studio) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザー: 以下を参照 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector 1.9 データベース用 Anypoint Connector (Database Connector) は、Mule アプリケーションとリレーショナルデータベース間の通信を確立します。Database Connector は、ほぼすべての Java Database Connectivity (JDBC) リレーショナルデータベースに接続し、SQL 操作を実行できます。アプリケーションは、同じ設定要素を使用し、たとえば各要求からの情報に基づいて接続属性を変更することで、マルチテナントシナリオに対応できます。 Database Connector には、ドライバークラス名を自動的に設定し、次のデータベースに指定されたパラメーターで JDBC URL を作成する接続プロバイダーがあります。 - Derby - Microsoft SQL Server - MySQL - Oracle 汎用の JDBC 設定を使用して、他の JDBC データベースをセットアップできます。Database Connector は JDBC に準拠しています。互換性の問題を回避するために、接続設定で JDBC に準拠しているドライバーが使用されていることを確認してください。また、Spring を使用して Anypoint Studio 内にオブジェクトを作成することで、XA トランザクションで必要とされる JDBC ​`DataSource`​ オブジェクトや ​`XADataSource`​ オブジェクトを参照することができます。 ## [](#始める前に)始める前に このコネクタを使用するには、以下に精通している必要があります。 - Anypoint Connector - Mule Runtime Engine (Mule) - Mule フローの要素とグローバル要素 - Anypoint Studio (Studio) を使用した Mule アプリケーションの作成 アプリケーションを作成する前に、データベースの対象リソースと Anypoint Platform へのアクセス権を持っていて、データベースの適切なデータベースドライバーをダウンロードしている必要があります。 ## [](#コネクタの一般的なユースケース)コネクタの一般的なユースケース Database Connector では、次の操作を実行できます。 - 定義済みのクエリ、動的に作成されたクエリ、および独自にカスタマイズ可能なテンプレートクエリを実行する。 - 使用するデータベース設定に応じて、コネクタ項目で DataWeave 式を指定し、属性を動的に設定する。 - source listener 操作を使用して、フローのデータソースセクション内のデータベースから読み取る。 - 他の操作を実行して、プロセスセクションの任意の場所でデータベースの読み取りと書き込む。 - 1 回の一括更新で複数の SQL 要求を実行する。 - データ自体ではなくデータ構造を変更するデータ定義言語 (DDL) 要求を実行する。 - ストアドプロシージャーおよび SQL スクリプトを実行する。 例については、​[「例」](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples)​を参照してください。 ## [](#対象者)対象者 - 新規ユーザー: 以下を参照 - Mule アプリケーションを作成するための​[「Anypoint Studio を使用したコネクタの設定」](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-studio) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 - 高度なユーザー: 以下を参照 - [XML と Maven のサポート](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-xml-maven) - [「例」](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples)​には、コネクタのユースケースが 1 つ以上用意されています。 ## [](#exchange-のテンプレートと例の使用)Exchange のテンプレートと例の使用 [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ は、アプリケーションのスタートポイントとして使用できるテンプレートと、完全なソリューションを具体的に示した例を提供しています。 - [Database Connector の例](https://www.mulesoft.com/exchange/?search=database&type=example) - [Database Connector テンプレート](https://www.mulesoft.com/exchange/?search=database&type=template) ## [](#次のステップ)次のステップ 前提条件を満たし、テンプレートおよびサンプルを試したら、​[Anypoint Studio](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-studio)​ で独自のアプリケーションを作成してコネクタを設定できます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [Exchange を使用したコネクタ、テンプレート、およびサンプルの検出](https://docs.mulesoft.com/connectors/introduction/intro-use-exchange) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector SQL サーバー接続での \[Use Bulk Copy (一括コピーを使用)\] の設定 Microsoft SQL Server 接続のためのデータベース用 Anypoint Connector (Database Connector) では一括挿入で一括コピーを設定できます。この機能を使用すると、一括挿入操作の実行時に一括コピー操作を行うためのドライバーを有効にすることができます。この機能を \[Database Connector Configuration (Database Connector 設定)\] 画面で接続プロパティとして設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索バーに「​`database`​」(データベース) と入力します。 4. **\[Database config (データベース設定)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 6. **\[Global Elements Properties (グローバル要素プロパティ)\]**​ 画面で、​**\[Connection (接続)\]**​ を ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ に設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Connection properties (接続プロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号をクリックして、新規プロパティを追加します。 10. **\[Connection property (接続プロパティ)\]**​ 画面で、​**\[Key (キー)\]**​ を ​`useBulkCopyforBatchInsert`​ に設定します。 11. **\[Value (値)\]**​ を ​`true`​ に設定します。 ![「Connection property (接続プロパティ)」 セクションで作成された useBulkCopyforBatchInsert プロパティ](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-bulkcopy.png) ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector SQL サーバー接続での \[Use Bulk Copy (一括コピーを使用)\] の設定 Microsoft SQL Server 接続のためのデータベース用 Anypoint Connector (Database Connector) では一括挿入で一括コピーを設定できます。この機能を使用すると、一括挿入操作の実行時に一括コピー操作を行うためのドライバーを有効にすることができます。この機能を \[Database Connector Configuration (Database Connector 設定)\] 画面で接続プロパティとして設定します。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索バーに「​`database`​」(データベース) と入力します。 4. **\[Database config (データベース設定)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 6. **\[Global Elements Properties (グローバル要素プロパティ)\]**​ 画面で、​**\[Connection (接続)\]**​ を ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ に設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Connection properties (接続プロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号をクリックして、新規プロパティを追加します。 10. **\[Connection property (接続プロパティ)\]**​ 画面で、​**\[Key (キー)\]**​ を ​`useBulkCopyForBatchInsert`​ に設定します。 11. **\[Value (値)\]**​ を ​`true`​ に設定します。 ![「Connection property (接続プロパティ)」 セクションで作成された useBulkCopyforBatchInsert プロパティ](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-bulkcopy.png) ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector での XA トランザクションの使用 Database Connector のグローバル設定で ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目を有効にすると、データベース用 Anypoint Connector (Database Connector) では拡張アーキテクチャトランザクション (XA トランザクション) を使用するオプションが提供されます。 ## [](#始める前に)始める前に 始める前に、​[XA トランザクション](https://docs.mulesoft.com/mule-runtime/latest/xa-transactions)​について理解していることを確認します。 ## [](#use-xa-transactions-xa-トランザクションを使用)Use XA Transactions (XA トランザクションを使用) **\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目は、​**\[Derby Connection (Derby 接続)\]**​、​**\[Generic Connection (汎用接続)\]**​、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​、​**\[MySQL Connection (MySQL 接続)\]**​、および ​**\[Oracle Connection (Oracle 接続)\]**​ のデータベースグローバルコネクタ設定で有効にすることができます。 **データソース参照接続**​については、​[「XA トランザクションモードでのデータソース参照接続」](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-connection#data-source-connection-xa)​を参照してください。
[Use XA Transactions (XA トランザクションを使用)]​ を有効にすると、接続プーリングも作成されます。
次の例は、Anypoint Studio で ​**\[MySQL Connection (MySQL 接続)\]**​ の ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索バーに「​`database`​」(データベース) と入力します。 4. **\[Database Config (データベース設定)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 6. **\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 7. **\[Transactions (トランザクション)\]**​ タブを選択します。 8. **\[Use XA Transactions (XA トランザクションを使用)\]**​ を選択します。これは、作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。 この実装により Enhydra XADatasource が作成されます。 9. **\[General (一般)\]**​ および ​**\[Advanced (詳細)\]**​ タブで他の必須のデータベース設定を定義します。 10. **\[OK\]**​ をクリックします。 ![選択した \[XA Transactions (XA トランザクション)\] 項目の使用](_images/database-connector-xatransactions.png) **設定 XML**​ エディターウィンドウでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Bitronix トランザクションマネージャーの設定](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager) # Database Connector での XA トランザクションの使用 Database Connector のグローバル設定で ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目を有効にすると、データベース用 Anypoint Connector (Database Connector) では拡張アーキテクチャトランザクション (XA トランザクション) を使用するオプションが提供されます。 ## [](#始める前に)始める前に 始める前に、​[XA トランザクション](https://docs.mulesoft.com/mule-runtime/latest/xa-transactions)​について理解していることを確認します。 ## [](#use-xa-transactions-xa-トランザクションを使用)Use XA Transactions (XA トランザクションを使用) **\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目は、​**\[Derby Connection (Derby 接続)\]**​、​**\[Generic Connection (汎用接続)\]**​、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​、​**\[MySQL Connection (MySQL 接続)\]**​、および ​**\[Oracle Connection (Oracle 接続)\]**​ のデータベースグローバルコネクタ設定で有効にすることができます。 **データソース参照接続**​については、​[「XA トランザクションモードでのデータソース参照接続」](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-connection#data-source-connection-xa)​を参照してください。
[Use XA Transactions (XA トランザクションを使用)]​ を有効にすると、接続プーリングも作成されます。
次の例は、Anypoint Studio で ​**\[MySQL Connection (MySQL 接続)\]**​ の ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索バーに「​`database`​」(データベース) と入力します。 4. **\[Database Config (データベース設定)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 6. **\[Global Element Properties (グローバル要素のプロパティ)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 7. **\[Transactions (トランザクション)\]**​ タブを選択します。 8. **\[Use XA Transactions (XA トランザクションを使用)\]**​ を選択します。これは、作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。 この実装により Enhydra XADatasource が作成されます。 9. **\[General (一般)\]**​ および ​**\[Advanced (詳細)\]**​ タブで他の必須のデータベース設定を定義します。 10. **\[OK\]**​ をクリックします。 ![選択した \[XA Transactions (XA トランザクション)\] 項目の使用](_images/database-connector-xatransactions.png) **設定 XML**​ エディターウィンドウでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Bitronix トランザクションマネージャーの設定](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager) # Database Connector トラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするには、原因と可能な解決策を確認します。 ## [](#プーリングプロファイル接続によるフローのハング)プーリングプロファイル接続によるフローのハング フローで使用されるよりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 ### [](#解決策)解決策 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。ただし、この方法が使用できないこともあります。その場合、別の解決策として、VM メッセージの有効期間と同じになるように、VM Connector を使用して接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。​`foreach`​ 要素が 11 番目の反復に到達すると、プールで接続を提供できるようになるため、​**Stored procedure**​ 操作がハングしなくなります。 ```xml ``` ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の XML と Maven のサポート XML で Mule アプリケーションを手動でコーディングすることもできますが、Anypoint Studio を使用した方が効率的です。 Anypoint Studio の XML エディターまたはテキストエディターから Mule Runtime Engine (Mule) アプリケーションを手動でコーディングする場合、参照ステートメントを XML Mule フローと Apache Maven ​`pom.xml`​ ファイルの両方に追加することで、アプリケーションでコネクタにアクセスできます。 コネクタを Studio に追加すると、Studio は自動的に XML コードにコネクタの名前空間およびスキーマの場所を入力します。さらに、​`pom.xml`​ ファイルに連動関係を追加します。 ## [](#コネクタの名前空間の追加)コネクタの名前空間の追加 次のコードを設定 XML のヘッダーの ​``​ タグ内に貼り付けます。 ```xml http://www.mulesoft.org/schema/mule/db http://www.mulesoft.org/schema/mule/db/current/mule-db.xsd ``` 次の例は、​``​ XML ブロック内に名前空間ステートメントが配置される方法を示しています。 ```xml ``` ## [](#pom-ファイルの連動関係の追加)POM ファイルの連動関係の追加 Apache Maven ​`pom.xml`​ ファイルは Anypoint Studio によって生成され、Mule アプリケーションの連動関係が含まれます。Mule アプリケーションを手動でコーディングする場合、次の XML スニペットを ​`pom.xml`​ ファイルに含めてこのコネクタにアクセスできるようにします: ```xml org.mule.connectors mule-db-connector x.x.x mule-plugin ``` `x.x.x`​ を使用しているコネクタに対応するバージョンに置き換えます。 最新の ​`pom.xml`​ ファイル情報を取得する手順は、次のとおりです。 1. [Anypoint Exchange](https://www.mulesoft.com/exchange/)​ に移動します。 2. Exchange で、​**\[Login (ログイン)\]**​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。 3. Exchange で、「​`database`​」を検索します。 4. コネクタを選択します。 5. 画面の右上付近にある ​**\[Dependency Snippets (連動関係スニペット)\]**​ をクリックします。 ## [](#次のステップ)次のステップ 名前空間および ​`pom.xml`​ ファイルを完了したら、​[例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples)​を試すことができます。 ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のデータ型の設定の例 次の例は、クエリの各入力パラメーターの型を指定する ​**\[Parameters types (パラメーターの型)\]**​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​**\[Column types (列の型)\]**​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。 ## [](#studio-で-parameter-types-パラメーターの型-項目を設定する)Studio で \[Parameter Types (パラメーターの型)\] 項目を設定する JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​**\[Parameter types (パラメーターの型)\]**​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​**Bulk insert**​ 操作の ​**\[Parameter types (パラメーターの型)\]**​ 項目を設定する方法を示しています。 1. Studio のフローで、​**\[Bulk insert\]**​ 操作を選択します。 2. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 4. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)`​)。 5. 操作設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 6. **\[Parameter types (パラメーターの型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 7. 緑のプラス記号 (​**+**​) をクリックして、新しいパラメーターの型を作成します。 8. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`name`​、​**\[Type (型)\]**​ 項目を ​`VARCHAR`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. ステップ 7 を繰り返します。 11. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`position`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 12. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-parameter-types.png) Figure 1. \[Parameter Types (パラメーターの型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ## [](#studio-で-column-types-列の型-項目を設定する)Studio で \[Column Types (列の型)\] 項目を設定する 各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。 次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。
JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​**\[Column types (列の型)\]**​ 項目を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. **\[Global Type (グローバル種別)\]**​ ウィンドウで、「​`database`​」と入力して絞り込みます。 4. **\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目を \[​`Derby Connection`​ (Derby 接続)\] に設定します。 6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Column types (列の型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 9. 緑のプラス記号 (​**+**​) をクリックして、カスタム列型を作成します。 10. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Id (ID)\]**​ 項目を ​`2000`​、​**\[Type (型)\]**​ 項目を ​`CONTACT_DETAILS`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-column-types.png) Figure 2. \[Column Types (列の型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のデータ型の設定の例 次の例は、クエリの各入力パラメーターの型を指定する ​**\[Parameters types (パラメーターの型)\]**​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​**\[Column types (列の型)\]**​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。 ## [](#studio-で-parameter-types-パラメーターの型-項目を設定する)Studio で \[Parameter Types (パラメーターの型)\] 項目を設定する JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​**\[Parameter types (パラメーターの型)\]**​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​**Bulk insert**​ 操作の ​**\[Parameter types (パラメーターの型)\]**​ 項目を設定する方法を示しています。 1. Studio のフローで、​**\[Bulk insert\]**​ 操作を選択します。 2. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 4. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)`​)。 5. 操作設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 6. **\[Parameter types (パラメーターの型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 7. 緑のプラス記号 (​**+**​) をクリックして、新しいパラメーターの型を作成します。 8. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`name`​、​**\[Type (型)\]**​ 項目を ​`VARCHAR`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. ステップ 7 を繰り返します。 11. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`position`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 12. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-parameter-types.png) Figure 1. \[Parameter Types (パラメーターの型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ## [](#studio-で-column-types-列の型-項目を設定する)Studio で \[Column Types (列の型)\] 項目を設定する 各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。 次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。
JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​**\[Column types (列の型)\]**​ 項目を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. **\[Global Type (グローバル種別)\]**​ ウィンドウで、「​`database`​」と入力して絞り込みます。 4. **\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目を \[​`Derby Connection`​ (Derby 接続)\] に設定します。 6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Column types (列の型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 9. 緑のプラス記号 (​**+**​) をクリックして、カスタム列型を作成します。 10. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Id (ID)\]**​ 項目を ​`2000`​、​**\[Type (型)\]**​ 項目を ​`CONTACT_DETAILS`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-column-types.png) Figure 2. \[Column Types (列の型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のデータ型の設定の例 次の例は、クエリの各入力パラメーターの型を指定する ​**\[Parameters types (パラメーターの型)\]**​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​**\[Column types (列の型)\]**​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。 ## [](#studio-で-parameter-types-パラメーターの型-項目を設定する)Studio で \[Parameter Types (パラメーターの型)\] 項目を設定する JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​**\[Parameter types (パラメーターの型)\]**​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​**Bulk insert**​ 操作の ​**\[Parameter types (パラメーターの型)\]**​ 項目を設定する方法を示しています。 1. Studio のフローで、​**\[Bulk insert\]**​ 操作を選択します。 2. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 4. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)`​)。 5. 操作設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 6. **\[Parameter types (パラメーターの型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 7. 緑のプラス記号 (​**+**​) をクリックして、新しいパラメーターの型を作成します。 8. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`name`​、​**\[Type (型)\]**​ 項目を ​`VARCHAR`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. ステップ 7 を繰り返します。 11. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`position`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 12. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-parameter-types.png) Figure 1. \[Parameter Types (パラメーターの型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ## [](#studio-で-column-types-列の型-項目を設定する)Studio で \[Column Types (列の型)\] 項目を設定する 各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。 次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。
JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​**\[Column types (列の型)\]**​ 項目を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. **\[Global Type (グローバル種別)\]**​ ウィンドウで、「​`database`​」と入力して絞り込みます。 4. **\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目を \[​`Derby Connection`​ (Derby 接続)\] に設定します。 6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Column types (列の型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 9. 緑のプラス記号 (​**+**​) をクリックして、カスタム列型を作成します。 10. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Id (ID)\]**​ 項目を ​`2000`​、​**\[Type (型)\]**​ 項目を ​`CONTACT_DETAILS`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-column-types.png) Figure 2. \[Column Types (列の型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のデータ型の設定の例 次の例は、クエリの各入力パラメーターの型を指定する ​**\[Parameters types (パラメーターの型)\]**​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​**\[Column types (列の型)\]**​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。 ## [](#studio-で-parameter-types-パラメーターの型-項目を設定する)Studio で \[Parameter Types (パラメーターの型)\] 項目を設定する JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​**\[Parameter types (パラメーターの型)\]**​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​**Bulk insert**​ 操作の ​**\[Parameter types (パラメーターの型)\]**​ 項目を設定する方法を示しています。 1. Studio のフローで、​**\[Bulk insert\]**​ 操作を選択します。 2. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 4. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)`​)。 5. 操作設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 6. **\[Parameter types (パラメーターの型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 7. 緑のプラス記号 (​**+**​) をクリックして、新しいパラメーターの型を作成します。 8. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`name`​、​**\[Type (型)\]**​ 項目を ​`VARCHAR`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. ステップ 7 を繰り返します。 11. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`position`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 12. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-parameter-types.png) Figure 1. \[Parameter Types (パラメーターの型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ## [](#studio-で-column-types-列の型-項目を設定する)Studio で \[Column Types (列の型)\] 項目を設定する 各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。 次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。
JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​**\[Column types (列の型)\]**​ 項目を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. **\[Global Type (グローバル種別)\]**​ ウィンドウで、「​`database`​」と入力して絞り込みます。 4. **\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目を \[​`Derby Connection`​ (Derby 接続)\] に設定します。 6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Column types (列の型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 9. 緑のプラス記号 (​**+**​) をクリックして、カスタム列型を作成します。 10. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Id (ID)\]**​ 項目を ​`2000`​、​**\[Type (型)\]**​ 項目を ​`CONTACT_DETAILS`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-column-types.png) Figure 2. \[Column Types (列の型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のデータ型の設定の例 次の例は、クエリの各入力パラメーターの型を指定する ​**\[Parameters types (パラメーターの型)\]**​ 項目と、特定のデータベースプロバイダーに接続されたときにカスタムデータ型を設定する ​**\[Column types (列の型)\]**​ 項目を使用して、データベース用 Anypoint Connector (Database Connector) のデータ型を設定する方法を示しています。 ## [](#studio-で-parameter-types-パラメーターの型-項目を設定する)Studio で \[Parameter Types (パラメーターの型)\] 項目を設定する JDBC ドライバーでエラーのない入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、​**\[Parameter types (パラメーターの型)\]**​ 項目を設定して、各入力パラメーターの型を指定します。次の例は、​**Bulk insert**​ 操作の ​**\[Parameter types (パラメーターの型)\]**​ 項目を設定する方法を示しています。 1. Studio のフローで、​**\[Bulk insert\]**​ 操作を選択します。 2. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 3. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 4. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name)`​)。 5. 操作設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 6. **\[Parameter types (パラメーターの型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 7. 緑のプラス記号 (​**+**​) をクリックして、新しいパラメーターの型を作成します。 8. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`name`​、​**\[Type (型)\]**​ 項目を ​`VARCHAR`​ に設定します。 9. **\[Finish (完了)\]**​ をクリックします。 10. ステップ 7 を繰り返します。 11. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Key (キー)\]**​ 項目を ​`position`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 12. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Parameter types (パラメーターの型)」 項目を 「Edit Inline (インライン編集)」 に設定し、プラス記号をクリックして新しいパラメーターを作成します。](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-parameter-types.png) Figure 1. \[Parameter Types (パラメーターの型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ## [](#studio-で-column-types-列の型-項目を設定する)Studio で \[Column Types (列の型)\] 項目を設定する 各接続プロバイダーは、専用パラメーターと共通パラメーターを使用します (Derby や Oracle など)。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型のパラメーターを定義します。 次の表には、カスタムメタデータ型を定義するために使用できる JDBC データ型のコードと ID が記載されています。
JDBC データ型のコード id

ARRAY

2003

BIGINT

-5

BINARY

-2

BIT

-7

BLOB

2004

BOOLEAN

16

CHAR

1

CLOB

2005

DATALINK

70

DATE

91

DECIMAL

3

DISTINCT

2001

DOUBLE

8

FLOAT

6

INTEGER

4

JAVA_OBJECT

2000

LONGNVARCHAR

-16

LONGVARBINARY

-4

LONGVARCHAR

-1

NCHAR

-15

NCLOB

2011

NULL

0

NUMERIC

2

NVARCHAR

-9

OTHER

1111

REAL

7

REF

2006

REF_CURSOR

2012

ROWID

-8

SMALLINT

5

SQLXML

2009

STRUCT

2002

TIME

92

TIME_WITH_TIMEZONE

2013

TIMESTAMP

93

TIMESTAMP_WITH_TIMEZONE

2014

TINYINT

-6

VARBINARY

-3

VARCHAR

12

次の例は、Derby グローバル設定接続要素の ​**\[Column types (列の型)\]**​ 項目を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. **\[Global Type (グローバル種別)\]**​ ウィンドウで、「​`database`​」と入力して絞り込みます。 4. **\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Connection (接続)\]**​ 項目を \[​`Derby Connection`​ (Derby 接続)\] に設定します。 6. Derby JDBC ドライバーの必須ライブラリと追加の接続項目を設定します。 7. **\[Advanced (詳細)\]**​ タブをクリックします。 8. **\[Column types (列の型)\]**​ 項目を \[​`Edit inline`​ (インライン編集)\] に設定します。 9. 緑のプラス記号 (​**+**​) をクリックして、カスタム列型を作成します。 10. \[parameter type (パラメーターの型)\] ウィンドウで、​**\[Id (ID)\]**​ 項目を ​`2000`​、​**\[Type (型)\]**​ 項目を ​`CONTACT_DETAILS`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Column types (列の型)」 項目を 「edit inline (インライン編集)」 に設定し、プラス記号をクリックして列の型を作成します。](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-column-types.png) Figure 2. \[Column Types (列の型)\] 項目の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のトラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。 Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。 手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Runtime Manager にアクセスします。 2. \[API configuration (API 設定)\] に移動します。 3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ および ​`org.mule.db.commons`​ パッケージを追加します。 4. 変更を適用します。 ## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 この問題を解決する手順は、次のとおりです。 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。 ```xml ``` ## [](#select-操作と-stored-procedure-操作の警告例外について)Select 操作と Stored Procedure 操作の警告例外について Database Connector の ​**Select**​ および ​**Stored procedure**​ 操作が適切に実行され、結果が返されない場合、Mule Runtime Engine (Mule) では、例外がスローされるのではなく ​`WARN`​ 例外メッセージが返されます。 **Select**​ 操作では、この動作は無効な SQL ステートメントが実行された場合に発生します。​**Store procedure**​ 操作では、プロシージャーを崩す可能性があるエラーが一連のステートメント内にある場合に発生します。実際には、JDBC で一連の ​`ResultSets`​、​`UpdateCounts`​、および ​`Exceptions`​ が返されます。 根本原因がドライバーの動作にあるため、Mule ではフローでキャッチされる例外はスローされません。一部のドライバーは JDBC に厳格に準拠して実行時にスローを適切にスローしますが、そうでないドライバーもあります。このため、例外をスローする動作をコネクタのコードに追加すると、例外を想定していない Mule アプリケーションの後方互換性が失われることになります。 **Select**​ 操作の場合、サブクエリで複数の値が返され、その結果が絞り込みや式として使用される場合、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がページ分割されるとすぐに警告を返します。 たとえば、次の SQL ステートメントがあるとします。 ```xml ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-01 10:04:33,323 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.resultset.ResultSetIterator: Unable to determine if there are more records com.microsoft.sqlserver.jdbc.SQLServerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. ``` **Stored procedure**​ 操作の場合、ストアドプロシージャーに複数のステートメントが含まれ、その 1 つ以上が失敗すると、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がコンシュームされるとすぐに警告を返します。たとえば、次の SQL ストアドプロシージャーがあるとします。 ```xml CREATE PROCEDURE dbo.SomeProcedure AS BEGIN BEGIN TRY select 1/0; END TRY BEGIN CATCH THROW 50000, 'Divide by zero error encountered.', 255; END CATCH END ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-02 09:38:14,624 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.statement.StatementResultIterator: Unable to determine if there are more statement results com.microsoft.sqlserver.jdbc.SQLServerException: 'The record does not exist.' ``` ## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング 一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。 `net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'` この問題を解決する手順は、次のとおりです。 Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例: `call doubleMyInt(:myInt)` ## [](#デプロイ時における静的-ip-を使用する-cloudhub-の失敗のトラブルシューティング)デプロイ時における静的 IP を使用する CloudHub の失敗のトラブルシューティング 静的 IP を使用する CloudHub アプリケーションをデプロイすると、データベーステスト接続エラーがスローされ、プロセスが失敗します。これは、静的 IP が割り当てられる前にテストが実行されているために発生します。 次のスタックトレースにテスト接続エラー ​`Could not obtain connection from data source`​ が示されています。 ```xml [2021-03-05 00:26:11.262] INFO org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance [[MuleRuntime].uber.02: [iagsatellite-snowflake-sys-api-v1-dev].uber@org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance.testConnectivity:179 @10f9d7dc]: Connectivity test failed for config 'Database_Config'. Application deployment will continue. Error was: Could not obtain connection from data source org.mule.runtime.api.connection.ConnectionException: Could not obtain connection from data source ``` この問題を解決する手順は、次のとおりです。 次のシステムプロパティをデプロイメントに設定します: `-DdoTestConnectivity=false` ## [](#oracle-の-null-値のトラブルシューティング)Oracle の NULL 値のトラブルシューティング `NULL`​ 値を Oracle データベースに送信しようとすると、問題が発生することがあります。 この問題を解決する手順は、次のとおりです。 Oracle では、空の文字列は ​`NULL`​ となるため、代わりに ​`''`​ を送信します。 ## [](#システムプロパティを使用した-oracle-の-xml-拡張機能のトラブルシューティング)システムプロパティを使用した Oracle の XML 拡張機能のトラブルシューティング Oracle XML 拡張機能を使用するには、Oracle jar ファイルを連動関係として追加する必要があります。これらの jar ファイルの 1 つに ​`xmlparserv2.jar`​ があります。このファイルは、Java SPI (サービスプロバイダーインターフェース) 経由で XML パーサー機能をエクスポートします。Mule の内部でこのパーサーを使用していると、Mule コンポーネントの想定と一致しなくなるため、次のような XML 解析エラーとなる場合があります。 ```xml : XML-24509: (Error) Duplicated definition for: 'identifiedType' : XML-24509: (Error) Duplicated definition for: 'beans' : XML-24509: (Error) Duplicated definition for: 'description' ``` この問題には、次のいずれかの方法で対処できます。 - `xmlparserv2.jar`​ ファイルを Database Connector の追加のプラグイン連動関係として追加し、連動関係がコネクタ内でのみ表示されるようにします。 ただし、データソースを Spring で設定された Bean として提供するために Oracle 接続をモジュール間で共有する必要がある場合には、この方法は使用できません。 - Mule の内部コンポーネントが常に想定する XML パーサーを取得するように、次のシステムプロパティを設定して XML パーサー SPI ルックアップを無効にします。 システムプロパティ: ```xml -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl ``` これらのプロパティにより、Oracle .jar ファイルを共有ライブラリとしてセットアップする場合などには問題を回避できます。 システムプロパティの設定方法についての詳細は、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#一般的なスローの理解)一般的なスローの理解 スローされる一般的なメッセージのリストとその解釈方法を次に示します。 - DB:BAD\_SQL\_SYNTAX 指定された SQL クエリの構文が無効です。 - DB:CANNOT\_LOAD\_DRIVER Database Connector で JDBC ドライバーを読み込むことができません。 - DB:CANNOT\_REACH Database Connector で RDBMS との接続を確立できません。 - DB:CONNECTIVITY いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。 - DB:INVALID\_DATABASE RDBMS への接続は確立されましたが、データベースが存在していません。 - DB:INVALID\_CREDENTIALS データベースで指定されたログイン情報が拒否されました。 - DB:QUERY\_EXECUTION クエリの実行に失敗しました。 - DB:RETRY\_EXHAUSTED すべての再接続の試行に失敗しました。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のトラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。 Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。 手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Runtime Manager にアクセスします。 2. \[API configuration (API 設定)\] に移動します。 3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ および ​`org.mule.db.commons`​ パッケージを追加します。 4. 変更を適用します。 ## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 この問題を解決する手順は、次のとおりです。 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。 ```xml ``` ## [](#select-操作と-stored-procedure-操作の警告例外について)Select 操作と Stored Procedure 操作の警告例外について Database Connector の ​**Select**​ および ​**Stored procedure**​ 操作が適切に実行され、結果が返されない場合、Mule Runtime Engine (Mule) では、例外がスローされるのではなく ​`WARN`​ 例外メッセージが返されます。 **Select**​ 操作では、この動作は無効な SQL ステートメントが実行された場合に発生します。​**Store procedure**​ 操作では、プロシージャーを崩す可能性があるエラーが一連のステートメント内にある場合に発生します。実際には、JDBC で一連の ​`ResultSets`​、​`UpdateCounts`​、および ​`Exceptions`​ が返されます。 根本原因がドライバーの動作にあるため、Mule ではフローでキャッチされる例外はスローされません。一部のドライバーは JDBC に厳格に準拠して実行時にスローを適切にスローしますが、そうでないドライバーもあります。このため、例外をスローする動作をコネクタのコードに追加すると、例外を想定していない Mule アプリケーションの後方互換性が失われることになります。 **Select**​ 操作の場合、サブクエリで複数の値が返され、その結果が絞り込みや式として使用される場合、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がページ分割されるとすぐに警告を返します。 たとえば、次の SQL ステートメントがあるとします。 ```xml ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-01 10:04:33,323 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.resultset.ResultSetIterator: Unable to determine if there are more records com.microsoft.sqlserver.jdbc.SQLServerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. ``` **Stored procedure**​ 操作の場合、ストアドプロシージャーに複数のステートメントが含まれ、その 1 つ以上が失敗すると、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がコンシュームされるとすぐに警告を返します。たとえば、次の SQL ストアドプロシージャーがあるとします。 ```xml CREATE PROCEDURE dbo.SomeProcedure AS BEGIN BEGIN TRY select 1/0; END TRY BEGIN CATCH THROW 50000, 'Divide by zero error encountered.', 255; END CATCH END ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-02 09:38:14,624 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.statement.StatementResultIterator: Unable to determine if there are more statement results com.microsoft.sqlserver.jdbc.SQLServerException: 'The record does not exist.' ``` ## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング 一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。 `net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'` この問題を解決する手順は、次のとおりです。 Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例: `call doubleMyInt(:myInt)` ## [](#デプロイ時における静的-ip-を使用する-cloudhub-の失敗のトラブルシューティング)デプロイ時における静的 IP を使用する CloudHub の失敗のトラブルシューティング 静的 IP を使用する CloudHub アプリケーションをデプロイすると、データベーステスト接続エラーがスローされ、プロセスが失敗します。これは、静的 IP が割り当てられる前にテストが実行されているために発生します。 次のスタックトレースにテスト接続エラー ​`Could not obtain connection from data source`​ が示されています。 ```xml [2021-03-05 00:26:11.262] INFO org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance [[MuleRuntime].uber.02: [iagsatellite-snowflake-sys-api-v1-dev].uber@org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance.testConnectivity:179 @10f9d7dc]: Connectivity test failed for config 'Database_Config'. Application deployment will continue. Error was: Could not obtain connection from data source org.mule.runtime.api.connection.ConnectionException: Could not obtain connection from data source ``` この問題を解決する手順は、次のとおりです。 次のシステムプロパティをデプロイメントに設定します: `-DdoTestConnectivity=false` ## [](#システムプロパティを使用した-oracle-の-xml-拡張機能のトラブルシューティング)システムプロパティを使用した Oracle の XML 拡張機能のトラブルシューティング Oracle XML 拡張機能を使用するには、Oracle jar ファイルを連動関係として追加する必要があります。これらの jar ファイルの 1 つに ​`xmlparserv2.jar`​ があります。このファイルは、Java SPI (サービスプロバイダーインターフェース) 経由で XML パーサー機能をエクスポートします。Mule の内部でこのパーサーを使用していると、Mule コンポーネントの想定と一致しなくなるため、次のような XML 解析エラーとなる場合があります。 ```xml : XML-24509: (Error) Duplicated definition for: 'identifiedType' : XML-24509: (Error) Duplicated definition for: 'beans' : XML-24509: (Error) Duplicated definition for: 'description' ``` この問題には、次のいずれかの方法で対処できます。 - `xmlparserv2.jar`​ ファイルを Database Connector の追加のプラグイン連動関係として追加し、連動関係がコネクタ内でのみ表示されるようにします。 ただし、データソースを Spring で設定された Bean として提供するために Oracle 接続をモジュール間で共有する必要がある場合には、この方法は使用できません。 - Mule の内部コンポーネントが常に想定する XML パーサーを取得するように、次のシステムプロパティを設定して XML パーサー SPI ルックアップを無効にします。 システムプロパティ: ```xml -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl ``` これらのプロパティにより、Oracle .jar ファイルを共有ライブラリとしてセットアップする場合などには問題を回避できます。 システムプロパティの設定方法についての詳細は、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#一般的なスローを理解する)一般的なスローを理解する スローされる一般的なメッセージのリストとその解釈方法を次に示します。 - DB:BAD\_SQL\_SYNTAX 指定された SQL クエリの構文が無効です。 - DB:CANNOT\_LOAD\_DRIVER Database Connector で JDBC ドライバーを読み込むことができません。 - DB:CANNOT\_REACH Database Connector で RDBMS との接続を確立できません。 - DB:CONNECTIVITY いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。 - DB:INVALID\_DATABASE RDBMS への接続は確立されましたが、データベースが存在していません。 - DB:INVALID\_CREDENTIALS データベースで指定されたログイン情報が拒否されました。 - DB:QUERY\_EXECUTION クエリの実行に失敗しました。 - DB:RETRY\_EXHAUSTED すべての再接続の試行に失敗しました。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のトラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。 Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。 手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Runtime Manager にアクセスします。 2. \[API configuration (API 設定)\] に移動します。 3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ および ​`org.mule.db.commons`​ パッケージを追加します。 4. 変更を適用します。 ## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 この問題を解決する手順は、次のとおりです。 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。 ```xml ``` ## [](#select-操作と-stored-procedure-操作の警告例外について)Select 操作と Stored Procedure 操作の警告例外について Database Connector の ​**Select**​ および ​**Stored procedure**​ 操作が適切に実行され、結果が返されない場合、Mule Runtime Engine (Mule) では、例外がスローされるのではなく ​`WARN`​ 例外メッセージが返されます。 **Select**​ 操作では、この動作は無効な SQL ステートメントが実行された場合に発生します。​**Store procedure**​ 操作では、プロシージャーを崩す可能性があるエラーが一連のステートメント内にある場合に発生します。実際には、JDBC で一連の ​`ResultSets`​、​`UpdateCounts`​、および ​`Exceptions`​ が返されます。 根本原因がドライバーの動作にあるため、Mule ではフローでキャッチされる例外はスローされません。一部のドライバーは JDBC に厳格に準拠して実行時にスローを適切にスローしますが、そうでないドライバーもあります。このため、例外をスローする動作をコネクタのコードに追加すると、例外を想定していない Mule アプリケーションの後方互換性が失われることになります。 **Select**​ 操作の場合、サブクエリで複数の値が返され、その結果が絞り込みや式として使用される場合、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がページ分割されるとすぐに警告を返します。 たとえば、次の SQL ステートメントがあるとします。 ```xml ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-01 10:04:33,323 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.resultset.ResultSetIterator: Unable to determine if there are more records com.microsoft.sqlserver.jdbc.SQLServerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. ``` **Stored procedure**​ 操作の場合、ストアドプロシージャーに複数のステートメントが含まれ、その 1 つ以上が失敗すると、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がコンシュームされるとすぐに警告を返します。たとえば、次の SQL ストアドプロシージャーがあるとします。 ```xml CREATE PROCEDURE dbo.SomeProcedure AS BEGIN BEGIN TRY select 1/0; END TRY BEGIN CATCH THROW 50000, 'Divide by zero error encountered.', 255; END CATCH END ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-02 09:38:14,624 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.statement.StatementResultIterator: Unable to determine if there are more statement results com.microsoft.sqlserver.jdbc.SQLServerException: 'The record does not exist.' ``` ## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング 一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。 `net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'` この問題を解決する手順は、次のとおりです。 Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例: `call doubleMyInt(:myInt)` ## [](#デプロイ時における静的-ip-を使用する-cloudhub-の失敗のトラブルシューティング)デプロイ時における静的 IP を使用する CloudHub の失敗のトラブルシューティング 静的 IP を使用する CloudHub アプリケーションをデプロイすると、データベーステスト接続エラーがスローされ、プロセスが失敗します。これは、静的 IP が割り当てられる前にテストが実行されているために発生します。 次のスタックトレースにテスト接続エラー ​`Could not obtain connection from data source`​ が示されています。 ```xml [2021-03-05 00:26:11.262] INFO org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance [[MuleRuntime].uber.02: [iagsatellite-snowflake-sys-api-v1-dev].uber@org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance.testConnectivity:179 @10f9d7dc]: Connectivity test failed for config 'Database_Config'. Application deployment will continue. Error was: Could not obtain connection from data source org.mule.runtime.api.connection.ConnectionException: Could not obtain connection from data source ``` この問題を解決する手順は、次のとおりです。 次のシステムプロパティをデプロイメントに設定します: `-DdoTestConnectivity=false` ## [](#システムプロパティを使用した-oracle-の-xml-拡張機能のトラブルシューティング)システムプロパティを使用した Oracle の XML 拡張機能のトラブルシューティング Oracle XML 拡張機能を使用するには、Oracle jar ファイルを連動関係として追加する必要があります。これらの jar ファイルの 1 つに ​`xmlparserv2.jar`​ があります。このファイルは、Java SPI (サービスプロバイダーインターフェース) 経由で XML パーサー機能をエクスポートします。Mule の内部でこのパーサーを使用していると、Mule コンポーネントの想定と一致しなくなるため、次のような XML 解析エラーとなる場合があります。 ```xml : XML-24509: (Error) Duplicated definition for: 'identifiedType' : XML-24509: (Error) Duplicated definition for: 'beans' : XML-24509: (Error) Duplicated definition for: 'description' ``` この問題には、次のいずれかの方法で対処できます。 - `xmlparserv2.jar`​ ファイルを Database Connector の追加のプラグイン連動関係として追加し、連動関係がコネクタ内でのみ表示されるようにします。 ただし、データソースを Spring で設定された Bean として提供するために Oracle 接続をモジュール間で共有する必要がある場合には、この方法は使用できません。 - Mule の内部コンポーネントが常に想定する XML パーサーを取得するように、次のシステムプロパティを設定して XML パーサー SPI ルックアップを無効にします。 システムプロパティ: ```xml -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl ``` これらのプロパティにより、Oracle .jar ファイルを共有ライブラリとしてセットアップする場合などには問題を回避できます。 システムプロパティの設定方法についての詳細は、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#一般的なスローの理解)一般的なスローの理解 スローされる一般的なメッセージのリストとその解釈方法を次に示します。 - DB:BAD\_SQL\_SYNTAX 指定された SQL クエリの構文が無効です。 - DB:CANNOT\_LOAD\_DRIVER Database Connector で JDBC ドライバーを読み込むことができません。 - DB:CANNOT\_REACH Database Connector で RDBMS との接続を確立できません。 - DB:CONNECTIVITY いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。 - DB:INVALID\_DATABASE RDBMS への接続は確立されましたが、データベースが存在していません。 - DB:INVALID\_CREDENTIALS データベースで指定されたログイン情報が拒否されました。 - DB:QUERY\_EXECUTION クエリの実行に失敗しました。 - DB:RETRY\_EXHAUSTED すべての再接続の試行に失敗しました。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector のトラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。 Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。 手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Runtime Manager にアクセスします。 2. \[API configuration (API 設定)\] に移動します。 3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ および ​`org.mule.db.commons`​ パッケージを追加します。 4. 変更を適用します。 ## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 この問題を解決する手順は、次のとおりです。 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。 ```xml ``` ## [](#select-操作と-stored-procedure-操作の警告例外について)Select 操作と Stored Procedure 操作の警告例外について Database Connector の ​**Select**​ および ​**Stored procedure**​ 操作が適切に実行され、結果が返されない場合、Mule Runtime Engine (Mule) では、例外がスローされるのではなく ​`WARN`​ 例外メッセージが返されます。 **Select**​ 操作では、この動作は無効な SQL ステートメントが実行された場合に発生します。​**Store procedure**​ 操作では、プロシージャーを崩す可能性があるエラーが一連のステートメント内にある場合に発生します。実際には、JDBC で一連の ​`ResultSets`​、​`UpdateCounts`​、および ​`Exceptions`​ が返されます。 根本原因がドライバーの動作にあるため、Mule ではフローでキャッチされる例外はスローされません。一部のドライバーは JDBC に厳格に準拠して実行時にスローを適切にスローしますが、そうでないドライバーもあります。このため、例外をスローする動作をコネクタのコードに追加すると、例外を想定していない Mule アプリケーションの後方互換性が失われることになります。 **Select**​ 操作の場合、サブクエリで複数の値が返され、その結果が絞り込みや式として使用される場合、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がページ分割されるとすぐに警告を返します。 たとえば、次の SQL ステートメントがあるとします。 ```xml ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-01 10:04:33,323 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.resultset.ResultSetIterator: Unable to determine if there are more records com.microsoft.sqlserver.jdbc.SQLServerException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. ``` **Stored procedure**​ 操作の場合、ストアドプロシージャーに複数のステートメントが含まれ、その 1 つ以上が失敗すると、Mule で ​`WARN`​ 例外が記録されます。Mule は、操作が実行されたときではなく、操作の結果がコンシュームされるとすぐに警告を返します。たとえば、次の SQL ストアドプロシージャーがあるとします。 ```xml CREATE PROCEDURE dbo.SomeProcedure AS BEGIN BEGIN TRY select 1/0; END TRY BEGIN CATCH THROW 50000, 'Divide by zero error encountered.', 255; END CATCH END ``` Mule で次の ​`WARN`​ 例外が記録されます。 ```xml WARN 2021-06-02 09:38:14,624 [[MuleRuntime].io.10: [some-mule-app].some-mule-app.BLOCKING @...] [event: ...] org.mule.extension.db.internal.result.statement.StatementResultIterator: Unable to determine if there are more statement results com.microsoft.sqlserver.jdbc.SQLServerException: 'The record does not exist.' ``` ## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング 一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。 `net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'` この問題を解決する手順は、次のとおりです。 Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例: `call doubleMyInt(:myInt)` ## [](#デプロイ時における静的-ip-を使用する-cloudhub-の失敗のトラブルシューティング)デプロイ時における静的 IP を使用する CloudHub の失敗のトラブルシューティング 静的 IP を使用する CloudHub アプリケーションをデプロイすると、データベーステスト接続エラーがスローされ、プロセスが失敗します。これは、静的 IP が割り当てられる前にテストが実行されているために発生します。 次のスタックトレースにテスト接続エラー ​`Could not obtain connection from data source`​ が示されています。 ```xml [2021-03-05 00:26:11.262] INFO org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance [[MuleRuntime].uber.02: [iagsatellite-snowflake-sys-api-v1-dev].uber@org.mule.runtime.module.extension.internal.runtime.config.LifecycleAwareConfigurationInstance.testConnectivity:179 @10f9d7dc]: Connectivity test failed for config 'Database_Config'. Application deployment will continue. Error was: Could not obtain connection from data source org.mule.runtime.api.connection.ConnectionException: Could not obtain connection from data source ``` この問題を解決する手順は、次のとおりです。 次のシステムプロパティをデプロイメントに設定します: `-DdoTestConnectivity=false`​。 ## [](#システムプロパティを使用した-oracle-の-xml-拡張機能のトラブルシューティング)システムプロパティを使用した Oracle の XML 拡張機能のトラブルシューティング Oracle XML 拡張機能を使用するには、Oracle jar ファイルを連動関係として追加する必要があります。これらの jar ファイルの 1 つに ​`xmlparserv2.jar`​ があります。このファイルは、Java SPI (サービスプロバイダーインターフェース) 経由で XML パーサー機能をエクスポートします。Mule の内部でこのパーサーを使用していると、Mule コンポーネントの想定と一致しなくなるため、次のような XML 解析エラーとなる場合があります。 ```xml : XML-24509: (Error) Duplicated definition for: 'identifiedType' : XML-24509: (Error) Duplicated definition for: 'beans' : XML-24509: (Error) Duplicated definition for: 'description' ``` この問題には、次のいずれかの方法で対処できます。 - `xmlparserv2.jar`​ ファイルを Database Connector の追加のプラグイン連動関係として追加し、連動関係がコネクタ内でのみ表示されるようにします。 ただし、データソースを Spring で設定された Bean として提供するために Oracle 接続をモジュール間で共有する必要がある場合には、この方法は使用できません。 - Mule の内部コンポーネントが常に想定する XML パーサーを取得するように、次のシステムプロパティを設定して XML パーサー SPI ルックアップを無効にします。 システムプロパティ: ```xml -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl ``` これらのプロパティにより、Oracle .jar ファイルを共有ライブラリとしてセットアップする場合などには問題を回避できます。 システムプロパティの設定方法についての詳細は、​[システムプロパティ](https://docs.mulesoft.com/mule-runtime/latest/mule-app-properties-system)​のドキュメントを参照してください。 ## [](#oracle-ドライバーの-tcp-キープアライブのトラブルシューティング)Oracle ドライバーの TCP キープアライブのトラブルシューティング クエリまたはストアドプロシージャーの実行に 15 ~ 30 分以上かかっている場合、ファイアウォールまたはネットワークデバイスが接続を終了している可能性があります。 これを回避するには、次のフラグを JVM パラメーターとして指定して、Oracle プロバイダーの TCP キープアライブを設定します。 \-Doracle.net.keepAlive=true このフラグにより、接続が確実にアクティブなままになります。 ## [](#一般的なスローの理解)一般的なスローの理解 スローされる一般的なメッセージのリストとその解釈方法を次に示します。 - DB:BAD\_SQL\_SYNTAX 指定された SQL クエリの構文が無効です。 - DB:CANNOT\_LOAD\_DRIVER Database Connector で JDBC ドライバーを読み込むことができません。 - DB:CANNOT\_REACH Database Connector で RDBMS との接続を確立できません。 - DB:CONNECTIVITY いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。 - DB:INVALID\_DATABASE RDBMS への接続は確立されましたが、データベースが存在していません。 - DB:INVALID\_CREDENTIALS データベースで指定されたログイン情報が拒否されました。 - DB:QUERY\_EXECUTION クエリの実行に失敗しました。 - DB:RETRY\_EXHAUSTED すべての再接続の試行に失敗しました。 ## [](#関連情報)関連情報 - [MuleSoft ヘルプセンター](https://help.mulesoft.com) - [Known Issues](https://help.salesforce.com/s/issues) # Database Connector のトラブルシューティング データベース用 Anypoint Connector (Database Connector) をトラブルシューティングするために、冗長ログの有効化、プーリングプロファイル接続のトラブルシューティング、Snowflake JDBC ドライバーのトラブルシューティング、スローされる一般的なメッセージの解釈に関する情報について説明します。 Database Connector は、JDBC ライブラリ (Java SE JDK 1.8 を使用) に記載されている標準およびガイドラインに従います。 ## [](#冗長ログの有効化)冗長ログの有効化 アプリケーションとデータベースのやりとりが失敗する理由の理解を深めるには、Database Connector の冗長ログを一時的に有効にします。 手動で ​`log4j2.xml`​ ファイルを変更するか、CloudHub API を使用している場合は Anypoint Runtime Manager を使用して、冗長ログを有効にします。 Mule アプリケーションのパフォーマンスに影響するため、トラブルシューティングが完了したら、必ず拡張された冗長性を無効にしてください。 設定ファイルで冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Studio にアクセスし、​**\[Package Explorer\]**​ ビューに移動します。 2. アプリケーションのプロジェクト名を開きます。 3. `src/main/resources`​ パスフォルダーを開きます。 4. フォルダー内の ​`log4j2.xml`​ ファイルを開きます。 5. ``​ タグ内に ​``​ タグを追加します。 ```xml ... ... ``` 6. アプリケーションの変更を保存します。 7. **Package Explorer**​ でプロジェクト名をクリックし、​**\[Run (実行)\]**​ > ​**\[Run As (別のユーザーとして実行)\]**​ > ​**\[Mule Application (Mule アプリケーション)\]**​ をクリックします。 Anypoint Runtime Manager で冗長ログを有効にする手順は、次のとおりです。 1. Anypoint Runtime Manager にアクセスします。 2. \[API configuration (API 設定)\] に移動します。 3. **\[Logging (ログ)\]**​ サブタブで、DEBUG レベルで ​`org.mule.extension.db`​ パッケージを追加します。 4. 変更を適用します。 ## [](#プーリングプロファイル接続によるフローのハングのトラブルシューティング)プーリングプロファイル接続によるフローのハングのトラブルシューティング フローで必要とされる接続数よりも少ない接続を提供するプーリングプロファイルを使用すると、フロー全体がハングする可能性があります。 この問題を解決する手順は、次のとおりです。 解決策の 1 つとして、プールのサイズを増やすことが挙げられます。この方法が使用できない場合、仮想マシン用 Anypoint Connector (VM Connector) を使用して、VM メッセージの有効期間に一致するように接続の有効期間を短くします。こうすることで、​**Stored procedure**​ 操作へのすべてのコールが実行されて、その結果がコンシュームされ、操作に関連付けられている接続が終了してプールに戻ります。 次の例は、​**Stored procedure**​ 操作と VM Connector でプーリングプロファイルを使用する方法を示しています。この例では、​`foreach`​ 要素が 11 番目の反復に到達しても、プールで接続を提供できるため、​**Stored procedure**​ 操作はハングしません。 ```xml ``` ## [](#ストアドプロシージャーの例外をスローする-snowflake-jdbc-ドライバーのトラブルシューティング)ストアドプロシージャーの例外をスローする Snowflake JDBC ドライバーのトラブルシューティング 一部のドライバーには、ストアドプロシージャーをコールするときの独自の仕様があります。中括弧 (​`{`​ および ​`}`​) を使用してコール可能なステートメントを設定している場合 (例: `{call doubleMyInt(:myInt)}`​)、アプリケーションを実行すると Snowflake JDBC ドライバーで次の例外がスローされます。 `net.snowflake.client.jdbc.SnowflakeSQLException: Unsupported feature 'call'` この問題を解決する手順は、次のとおりです。 Snowflake JDBC ドライバーでは、中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定します。例: `call doubleMyInt(:myInt)` ## [](#一般的なスローの理解)一般的なスローの理解 スローされる一般的なメッセージのリストとその解釈方法を次に示します。 - DB:BAD\_SQL\_SYNTAX 指定された SQL クエリの構文が無効です。 - DB:CANNOT\_LOAD\_DRIVER Database Connector で JDBC ドライバーを読み込むことができません。 - DB:CANNOT\_REACH Database Connector で RDBMS との接続を確立できません。 - DB:CONNECTIVITY いくつかの考えられる接続の問題 (不適切な接続の設定、行のフェッチ結果を待機しているときのデータベース応答の欠落、データベース接続の切断など)。 - DB:INVALID\_DATABASE RDBMS への接続は確立されましたが、データベースが存在していません。 - DB:INVALID\_CREDENTIALS データベースで指定されたログイン情報が拒否されました。 - DB:QUERY\_EXECUTION クエリの実行に失敗しました。 - DB:RETRY\_EXHAUSTED すべての再接続の試行に失敗しました。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 データベース用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の設定に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-driver-configuration) Mule Maven プラグインを使用して、ドライバークラスの表示を適切に設定します。 - [データベースのクエリ](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-select) データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データベースからの単一レコードのクエリ](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-query-single) MySQL データベースのテーブルから本の情報を取得する ​**Query single**​ 操作を Mule アプリケーション内で設定します。 - [データの挿入、更新、削除](https://docs.mulesoft.com/jp/db-connector/1.10/database-insert-update-delete) データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](https://docs.mulesoft.com/jp/db-connector/1.10/database-stored-procedure) `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-execute-ddl) テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [一括操作の実行](#execute-bulk-operations)​ 各入力パラメーターが 1 つの値のみを取る場合に使用する ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [スクリプトの実行](https://docs.mulesoft.com/jp/db-connector/1.10/database-execute-script) スクリプトを 1 つのステートメントとして実行する ​**Execute Script**​ 操作を設定します。 - [データベースのデータ型の設定](https://docs.mulesoft.com/jp/db-connector/1.10/database-configure-data-types) 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を設定します。 - [データベーストランザクションの設定](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-transactions) データベース操作をトランザクションのコンテキストで実行します。 ## [](#execute-bulk-operations)一括操作の実行 `insert`​、​`update`​、​`delete`​ 操作は、各入力パラメーターが 1 つの値のみを取る場合に使用できます。または、一括操作では、一連のパラメーター値を使用して 1 つのクエリを実行できます。 一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリは 1 回のみ解析される。 - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである。 - ネットワークオーバーヘッドが最小限に抑えられる。 - RDBMS は一括操作をアトミックに実行できる。 このユースケースでは、コネクタは ​``​、​``​、​``​ の 3 つの操作を提供します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、キー - 値のペアのリストとして受け取ることを想定しています。 次に例を示します。 ```xml #[[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]] insert into customers (id, name, lastName) values (:id, :name, :lastName) ``` 一括操作を使用しない場合、​`delete`​ 操作の実行時に 1 つの条件 ​`(POSITION = X)`​ のみが提供されると、複数の行が条件に一致して削除される可能性があります。 同じ概念が更新にも適用されます。​`UPDATE PRODUCTS set PRICE = PRICE * 0.9 where PRICE > :price`​ を使用するときに、複数の商品に 10% 割引を適用したい場合でも、​`price`​ 入力パラメーターは 1 つの値のみを受け入れます。 価格の異なる商品に異なる割引率を適用するには、多くの操作を実行します。 次の例は、構造 ​`{ price : number, discountRate: number}`​ のオブジェクトのリストであるペイロードです。 ```xml #[ { 'discountRate' : payload.discountRate, 'price' : payload.price, } ] UPDATE PRODUCTS set PRICE = PRICE * :discountRate where PRICE > :price ``` 前の操作ではタスクを遂行できますが、非効率的です。リストの要素ごとに、操作の各要素で 1 つのクエリを実行する必要があります。 - クエリが解析される。 - パラメーターが解決される。 - データベースへの接続が取得される (プールから接続を取得するか、新しい接続を確立する)。 - すべてのネットワークオーバーヘッドが支払われる。 - RBMS でクエリを処理し、変更を適用する。 - 接続が解放される。 いずれかの操作の実行中にエラーが発生した場合 (たとえば、100 行の一括挿入のうち 1 行の挿入に失敗した場合)、1 つの例外がスローされます。 一括操作の一部のステートメントは正常に実行できても、他のステートメントはエラーになる可能性があります。この場合、ドライバーが次のいずれかを実行します。 1. 実行をすぐに停止し、残りのすべての操作を無視する 2. 残りのステートメントの実行を続行する。 どちらの場合も、エラーが発生するたびにアプリケーションログを調べて、失敗の原因を確認できます。この場合、問題の原因を説明する 1 つの例外がスローされます。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 データベース用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の設定に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [Oracle TLS データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-connection-secure-oracle) 複数のセキュア Oracle 接続レベルと Mule の TLS 設定を使用して、セキュア TPC (TCPS) トンネル経由で Oracle に接続します。 - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-driver-configuration) Mule Maven プラグインを使用して、ドライバークラスの表示を適切に設定します。 - [データベースのクエリ](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-select) データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データベースからの単一レコードのクエリ](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-query-single) MySQL データベースのテーブルから本の情報を取得する ​**Query single**​ 操作を Mule アプリケーション内で設定します。 - [データの挿入、更新、削除](https://docs.mulesoft.com/jp/db-connector/1.12/database-insert-update-delete) データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [データベースのデータの一括挿入、一括更新、および一括削除](https://docs.mulesoft.com/jp/db-connector/1.12/database-execute-bulk) データを一括管理するように ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](https://docs.mulesoft.com/jp/db-connector/1.12/database-stored-procedure) `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-execute-ddl) テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [スクリプトの実行](https://docs.mulesoft.com/jp/db-connector/1.12/database-execute-script) スクリプトを 1 つのステートメントとして実行する ​**Execute Script**​ 操作を設定します。 - [データベースのデータ型の設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-configure-data-types) 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を設定します。 - [データベーストランザクションの設定](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-transactions) データベース操作をトランザクションのコンテキストで実行します。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 データベース用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の設定に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [Oracle TLS データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-connection-secure-oracle) 複数のセキュア Oracle 接続レベルと Mule の TLS 設定を使用して、セキュア TPC (TCPS) トンネル経由で Oracle に接続します。 - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-driver-configuration) Mule Maven プラグインを使用して、ドライバークラスの表示を適切に設定します。 - [データベースのクエリ](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-select) データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データベースからの単一レコードのクエリ](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-query-single) MySQL データベースのテーブルから本の情報を取得する ​**Query single**​ 操作を Mule アプリケーション内で設定します。 - [データの挿入、更新、削除](https://docs.mulesoft.com/jp/db-connector/1.13/database-insert-update-delete) データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [データベースのデータの一括挿入、一括更新、および一括削除](https://docs.mulesoft.com/jp/db-connector/1.13/database-execute-bulk) データを一括管理するように ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](https://docs.mulesoft.com/jp/db-connector/1.13/database-stored-procedure) `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-execute-ddl) テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [スクリプトの実行](https://docs.mulesoft.com/jp/db-connector/1.13/database-execute-script) スクリプトを 1 つのステートメントとして実行する ​**Execute Script**​ 操作を設定します。 - [データベースのデータ型の設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-configure-data-types) 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を設定します。 - [データベーストランザクションの設定](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-transactions) データベース操作をトランザクションのコンテキストで実行します。 - [テーブルへの大きなファイルコンテンツの挿入](https://docs.mulesoft.com/jp/db-connector/1.13/database-insert-large-clob) 大きなファイルを読み取ってテーブルに挿入するように Mule アプリケーションフローを設定します。 - [Database Connector での XA トランザクションの使用](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-xa-transactions) データソースで拡張アーキテクチャトランザクション (XA トランザクション) がサポートされるように Database Connector のグローバル設定で ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目を設定します。 - [Database Connector SQL サーバー接続での \[Use Bulk Copy (一括コピーを使用)](https://docs.mulesoft.com/jp/db-connector/1.13/database-configure-usebulkcopy) の設定\] 一括挿入操作の実行時に一括コピー操作を行うには、\[Use Bulk Copy (一括コピーを使用)\] を設定します。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 データベース用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の設定に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [Oracle TLS データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-connection-secure-oracle) 複数のセキュア Oracle 接続レベルと Mule の TLS 設定を使用して、セキュア TPC (TCPS) トンネル経由で Oracle に接続します。 - [Mule Maven プラグインを使用したドライバー表示の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-driver-configuration) Mule Maven プラグインを使用して、ドライバークラスの表示を適切に設定します。 - [データベースのクエリ](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-select) データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データベースからの単一レコードのクエリ](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-query-single) MySQL データベースのテーブルから本の情報を取得する ​**Query single**​ 操作を Mule アプリケーション内で設定します。 - [データの挿入、更新、削除](https://docs.mulesoft.com/jp/db-connector/1.14/database-insert-update-delete) データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [データベースのデータの一括挿入、一括更新、および一括削除](https://docs.mulesoft.com/jp/db-connector/1.14/database-execute-bulk) データを一括管理するように ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](https://docs.mulesoft.com/jp/db-connector/1.14/database-stored-procedure) `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-execute-ddl) テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [スクリプトの実行](https://docs.mulesoft.com/jp/db-connector/1.14/database-execute-script) スクリプトを 1 つのステートメントとして実行する ​**Execute Script**​ 操作を設定します。 - [データベースのデータ型の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-configure-data-types) 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を設定します。 - [データベーストランザクションの設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-transactions) データベース操作をトランザクションのコンテキストで実行します。 - [テーブルへの大きなファイルコンテンツの挿入](https://docs.mulesoft.com/jp/db-connector/1.14/database-insert-large-clob) 大きなファイルを読み取ってテーブルに挿入するように Mule アプリケーションフローを設定します。 - [Database Connector での XA トランザクションの使用](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-xa-transactions) データソースで拡張アーキテクチャトランザクション (XA トランザクション) がサポートされるように Database Connector のグローバル設定で ​**\[Use XA Transactions (XA トランザクションを使用)\]**​ 項目を設定します。 - [Database Connector SQL サーバー接続での \[Use Bulk Copy (一括コピーを使用)](https://docs.mulesoft.com/jp/db-connector/1.14/database-configure-usebulkcopy) の設定\] 一括挿入操作の実行時に一括コピー操作を行うには、\[Use Bulk Copy (一括コピーを使用)\] を設定します。 - [MS SQL Server の Azure Active Directory 認証の設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-integratedsecurity) Database Connector を使用して ​`IntegratedSecurity`​ パラメーターを介して MS SQL Server の Azure Active Directory 認証を設定します。 - [ストアドプロシージャーの入力および出力パラメーターの設定](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-input-output-parameters) データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作の入力または出力パラメーターを設定して、ストアドプロシージャーで使用するパラメーターを指定します。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 Database 用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の定義に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [データベースの照会](#query-database)​ データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データの挿入、更新、削除](#insert-update-delete)​ データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](#execute-stored-procedures)​ `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.8/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](#execute-ddl-statements)​ テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [一括操作の実行](#execute-bulk-operations)​ 各入力パラメーターが 1 つの値のみを取る場合に使用する ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [Execute Script](#execute-script)​ スクリプトを 1 つのステートメントとして実行する ​**Execute script**​ 操作を設定します。 - [カスタムデータ型の定義](#data-types)​ 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を定義します。 - [データベーストランザクションの実行](#database-transactions)​ データベース操作をトランザクションのコンテキストで実行します。 ## [](#query-database)データベースのクエリ Database Connector を使用してデータベース操作を設定する場合、データベース内で実行する SQL ステートメントに変数値を追加する方法がいくつかあります。 ### [](#入力パラメーターを使用したデータベースクエリの保護)入力パラメーターを使用したデータベースクエリの保護 RDBMS から情報を取得するには ​`select`​ 操作を使用します。その操作の主な目標は、SQL クエリを提供し、DataWeave を使用してパラメーターを提供することです。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ``` この例では、入力パラメーターをキー-値ペアで提供します。このペアは、DataWeave スクリプトを埋め込むことで作成します。このキーをコロン文字 (​`:`​) と組み合わせて、名前によりパラメーター値を参照します。クエリでパラメーターを使用するには、この方法をお勧めします。 入力パラメーターを使用して ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定する利点は、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションの全体的なパフォーマンスが向上することです。

バージョン 1.4.0 以降 (コロンのエスケープ):​ SQL クエリでコロン文字 (​:​) を使用する必要がある場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

バージョン 1.8.0 以降 (PostgreSQL および Snowflake の SQL キャスト)​:Database Connector は、各コロンをエスケープする必要なく、ダブルコロン (::) 表現を使用して SQL キャスト PostgreSQL および Snowflake 構文を受け入れるようになりました (この機能はコロンのエスケープの動作に影響しません)。次に例を示します。

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力と出力には DataSense を使用できます。コネクタはクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 ### [](#動的クエリ)動的クエリ 場合によっては、​`WHERE`​ 句をパラメーター化するだけでなく、クエリ自体の一部をパラメーター化しなければならないことがあります。次のユースケースの例は、条件に応じてオンラインテーブルか履歴テーブルにアクセスする必要があるクエリ、またはプロジェクトテーブル列を変更する必要がある複雑なクエリです。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ をビルドしてクエリを生成するための完全な式を確認できます。重要なことは、一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して ​`WHERE`​ 条件を定義するベストプラクティスが引き続き使用されていることです (この例では ​`WHERE name = :name`​)。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 上記の例では動的クエリが必要であり、入力パラメーターのようには処理できません。入力パラメーターは、​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave の補間演算子を使用する必要があります。
Mule 3 では、選択の概念がパラメーター化クエリと動的クエリに分割されており、この両方を同時に使用することができませんでした。動的クエリを使用するか、パラメーターの使用から利点を得るか (SQL インジェクションの保護、PreparedStatement の最適化など) のどちらかを選択する必要がありました。また、それぞれ構文が異なるため、同じことを行うのに 2 つのやり方を学ぶ必要がありました。ただし、Mule 4 の Database Connector があれば、クエリ内で式を使用してこの両方の方法を同時に使用できるようになりました。
### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10K 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、コネクタは一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。 これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 新しい反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。反復可能なストリームについての詳細は、Mule 4.0 でのストリーミングを参照してください。 ### [](#結果の制限)結果の制限 Mule を使用すると、コネクタでストリーミングを適切に処理できます。ただし、これは、データの大きなチャンクをデータベースから Mule に移動することをお勧めするものではありません。ストリーミングを使用しても、通常の SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。 `select`​ 操作では、これに役立つパラメーター (​`fetchSize`​ および ​`maxRows`​) が提供されます。 ```xml select * from some_table ``` この構文は、フェッチできる合計行数は 1000 (​`maxRows`​ 値) 以下、一度にフェッチできる行数は 200 (​`fetchSize`​ 値) 以下であることをコネクタに指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​`fetchSize`​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。 この組み合わせにより、取得される情報の総量が制限され (​`maxRows`​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​`fetchSize`​ 値)。 ### [](#query-timeout-クエリタイムアウト)Query Timeout (クエリタイムアウト) データベースクエリの実行に長い時間がかかる場合があります。多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 一般に、クエリにタイムアウトを設定することをお勧めします。タイムアウトを管理するには、​`queryTimeout`​ と ​`queryTimeoutUnit`​ を設定します。次の例は、Select 操作のタイムアウトの設定方法を示していますが、タイムアウトの設定はすべての操作でサポートされます。 ```xml select * from some_table ``` ## [](#insert-update-delete)データの挿入、更新、削除 Database Connector では、​`insert`​、​`update`​、および ​`delete`​ 操作がサポートされています。 select 操作と同様に、これらの操作では、埋め込みの DataWeave 変換を使用して、動的クエリとパラメーター化がサポートされます。また、​`fetchSize`​、​`maxRows`​、​`timeout`​ パラメーターもサポートされます。入力パラメーター化、動的クエリ、およびパラメーターの使用方法の例が提供されますが、詳細は、​`SELECT`​ 操作のドキュメントを参照してください。 ### [](#insert)Insert `electronic`​ という名前のテーブルが含まれている ​`Products`​ という名前のデータベーススキーマがあるとします。​`electronic`​ テーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` テーブルがすでに作成されていて、​`dbConfig`​ という名前の接続設定がある場合、次の操作で ​`electronic`​ テーブルに新しいレコードが挿入されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。

入力パラメーターの利点を得るには、次のように同等のクエリを構築します。

<db:insert config-ref="dbConfig">
    <db:sql>
        INSERT INTO electronic(name, description, price, discount)
        VALUES (:name, :description, :price, :discount)
    </db:sql>
    <db:input-parameters>#[{
        name: 'Coffee Machine',
        description: 'Model:XYZ99. Uses small size capsules.',
        price: 120,
        discount: 5}]
    </db:input-parameters>
</db:insert>
insert 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。この例では、出力は次のようになります。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 行は正常にテーブルに追加されていますが、マップ ​`generatedKeys`​ は空です。 マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 情報をアクティブ化してキーを生成するには、​`autoGenerateKeys`​ パラメーターを追加して ​`true`​ に設定します。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、パラメーター ​`autoGeneratedKeysColumnNames`​ を目的の列名が含まれるリストに設定して、返される列を指定できます。たとえば、​`id`​ 列のみが返されるようにするには、パラメーターを 1 つの文字列要素が含まれる DataWeave リストに設定します。 ```xml ... ``` ### [](#update-更新)Update (更新) 「挿入の例」で定義したテーブルの場合、価格値が 100 を越えているすべての項目の割引を 10 % に設定するように ​`electronic`​ を更新する操作は次のようになります。 :price"\]\]\]> #\[{ discount: 10, price: 100 }\] ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 XML コードビューの代わりにコネクタの Anypoint Studio ビジュアルユーザーインターフェースを使用する場合、\[​`SQL Query Text`​ (SQL クエリテキスト)\] ボックスに特殊文字を直接入力できます。入力された文字は、Anypoint Studio によって自動的に XML ビューのエスケープされたバージョンに変更されます。 ### [](#delete-削除)Delete (削除) `insert`​ の例で定義されたテーブルの場合、次の演算子は ​`id: 1`​ のレコードをテーブルから削除します。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#execute-stored-procedures)ストアドプロシージャーの実行 `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせたストアドプロシージャーを呼び出します。 次に例を示します。 ```xml { call updatePlanetDescription('Venus', :description) } #[{'description' : payload}] { call doubleMyInt(:myInt) } { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` 多くの組み合わせが可能です。 実行後、​`output`​ と ​`input-output`​ パラメーターの結果の値は操作の結果内で利用できます。DataSense を活用すると、この値を容易に取得できます。 Database Connector バージョン 1.4.0 以降では、ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 Database Connector は、パラメーターが位置的に一致する ​`{ call procedureName(:param1, :param2, …​, :paramN) }`​ 形式である、つまり、​`:paramN`​ がストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致する、コール可能なステートメントの使用をサポートしています。 次のテーブルとストアドプロシージャーを使用して初期化した Oracle データベースを使用しているとします。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` コネクタはコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前 (​`{ call createEmployee(employee_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }`​) でパラメーターを一致させようとしても機能しません。パラメーターは適切な順序 (​`{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ :date) }`​) で指定する必要があります。 ## [](#use_dates_stored_procedures)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、​`{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.`​ のアプローチは機能しません。 コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。たとえば、前の例を使用して、次の変換を実行します。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#execute-ddl-statements)DDL ステートメントの実行 データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ### [](#create-table-の例)Create Table の例 `Products`​ という名前のデータベーススキーマがあり、​`Products`​ にアクセスするように設定されている ​`dbConfig`​ という名前の接続もあるとします。​`Execute DDL`​ という名前の次の操作は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列がある ​`electronic`​ という名前の新しいテーブルを作成します。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` `Execute DDL`​ 操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 ## [](#execute-bulk-operations)一括操作の実行 `insert`​、​`update`​、​`delete`​ 操作は、各入力パラメーターが 1 つの値のみを取る場合に使用できます。または、一括操作では、一連のパラメーター値を使用して 1 つのクエリを実行できます。 一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリは 1 回のみ解析される。 - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである。 - ネットワークオーバーヘッドが最小限に抑えられる。 - RDBMS は一括操作をアトミックに実行できる。 このユースケースでは、コネクタは ​``​、​``​、​``​ の 3 つの操作を提供します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、キー - 値のペアのリストとして受け取ることを想定しています。 次に例を示します。 ```xml #[[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]] insert into customers (id, name, lastName) values (:id, :name, :lastName) ``` 一括操作を使用しない場合、​`delete`​ 操作の実行時に 1 つの条件 ​`(POSITION = X)`​ のみが提供されると、複数の行が条件に一致して削除される可能性があります。 同じ概念が更新にも適用されます。​`UPDATE PRODUCTS set PRICE = PRICE * 0.9 where PRICE > :price`​ を使用するときに、複数の商品に 10% 割引を適用したい場合でも、​`price`​ 入力パラメーターは 1 つの値のみを受け入れます。 価格の異なる商品に異なる割引率を適用するには、多くの操作を実行します。 次の例は、構造 ​`{ price : number, discountRate: number}`​ のオブジェクトのリストであるペイロードです。 ```xml #[ { 'discountRate' : payload.discountRate, 'price' : payload.price, } ] UPDATE PRODUCTS set PRICE = PRICE * :discountRate where PRICE > :price ``` 前の操作ではタスクを遂行できますが、非効率的です。リストの要素ごとに、操作の各要素で 1 つのクエリを実行する必要があります。 - クエリが解析される。 - パラメーターが解決される。 - データベースへの接続が取得される (プールから接続を取得するか、新しい接続を確立する)。 - すべてのネットワークオーバーヘッドが支払われる。 - RBMS でクエリを処理し、変更を適用する。 - 接続が解放される。 いずれかの操作の実行中にエラーが発生した場合 (たとえば、100 行の一括挿入のうち 1 行の挿入に失敗した場合)、1 つの例外がスローされます。 一括操作の一部のステートメントは正常に実行できても、他のステートメントはエラーになる可能性があります。この場合、ドライバーが次のいずれかを実行します。 1. 実行をすぐに停止し、残りのすべての操作を無視する 2. 残りのステートメントの実行を続行する。 どちらの場合も、エラーが発生するたびにアプリケーションログを調べて、失敗の原因を確認できます。この場合、問題の原因を説明する 1 つの例外がスローされます。 ## [](#data-types)Database Connector データ型リファレンス 次の例には、データベース入力パラメーターと、特定の接続プロバイダーに接続している場合に使用できるカスタムデータ型の定義方法に関する情報が含まれています。 ### [](#パラメーターのデータ型の強制)パラメーターのデータ型の強制 まれに、基礎となる JDBC ドライバーで入力パラメーターを特定のデータ型に強制的に割り当てることが必要になる場合があります。たとえば、JDBC ドライバーで入力のデータ型を特定できない場合や、パラメーターがカスタムデータ型の場合、各入力パラメーターのデータ型を指定して、強制を適用しなければならないことがあります。 ```xml INSERT INTO PLANET(POSITION, NAME) VALUES (:position, :name) ``` ### [](#カスタムデータ型の定義)カスタムデータ型の定義 接続プロバイダー (Derby、Oracle など) ごとに専用パラメーターと共通パラメーターがあります。接続プロバイダー要素の子要素で、特定のプロバイダーに接続している場合に使用できるカスタムデータ型を定義します。次に例を示します。 ```xml ``` ## [](#database-transactions)データベースのトランザクション データベース操作をトランザクションのコンテキストで実行できます。各操作に ​`transactionalAction`​ 値があります。これは、アクティブなトランザクションがある場合に、トランザクションに関して、操作で実行できる結合アクションの種別を特定します。たとえば、​`select`​ 操作には次の可能なアクションがあります。 - `ALWAYS_JOIN` メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - `JOIN_IF_POSSIBLE` 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - `NOT_SUPPORTED` 存在するトランザクションの外部で実行します。 ### [](#操作のグループ化)操作のグループ化 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。たとえば、銀行口座振替中は 1 つの口座から金額を引き、別の口座に加える必要がありますが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックする必要があります。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{‘money’ : payload.money, ‘source’: payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{‘money’ : payload.money, ‘target’’: payload.target}] ``` これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。アクティブなトランザクションがない場合は、​``​ スコープを使用してトランザクションを開始できます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#execute-script)スクリプトの実行リファレンス この操作ではランダムな長さのスクリプトを 1 つのステートメントとして実行します。スクリプト実行は、次のいくつかの点で他の操作と異なります。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 `execute-script`​ 操作では、SQL 射影を伴わない任意のスクリプトを実行します。次の方法で ​``​ を使用できます。 - 操作に ​`execute-script`​ を埋め込む。 - ファイルから ​`execute-script`​ を参照する。 この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各数値は、ステートメントの影響を受けたオブジェクトの数を表します。 ### [](#操作への埋め込み)操作への埋め込み ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ### [](#ファイルからの参照)ファイルからの参照 ```xml ``` スクリプト実行操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。 スクリプト実行操作と一括操作では用途が異なります。 たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐ必要があります。 スクリプトで SELECT ステートメントを実行すると、データは返されず、データ入力の問題が生じます。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector の例 データベース用 Anypoint Connector (Database Connector) の例は、データベース接続の設定、データベースの照会、ストアドプロシージャーの実行、DDL ステートメントの実行、スクリプトの実行、データベーストランザクションの実行、一括操作の使用、カスタムデータ型の設定に役立ちます。 - [データベース接続の設定](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-connection) 一般的なデータベースと汎用データベースの両方に接続します。また、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行うようにコネクタを設定します。 - [データベースのクエリ](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-select) データベースからデータを照会する ​**Select**​ 操作を設定します。 - [データベースからの単一レコードのクエリ](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-query-single) MySQL データベースのテーブルから本の情報を取得する ​**Query single**​ 操作を Mule アプリケーション内で設定します。 - [データの挿入、更新、削除](https://docs.mulesoft.com/jp/db-connector/1.9/database-insert-update-delete) データを管理するように ​**Insert**​、​**Update**​、​**Delete**​ 操作を設定します。 - [ストアドプロシージャーの実行](https://docs.mulesoft.com/jp/db-connector/1.9/database-stored-procedure) `input`​、​`output`​、および ​`input-output`​ パラメーターを組み合わせる ​**Stored Procedure**​ 操作を設定します。また、ストアドプロシージャーの日付を設定します。 - [UDT を使用する Oracle ストアドプロシージャーのコール](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-udt-stored-procedure) UDT を入力および出力パラメーターとして使用する Oracle データベースストアドプロシージャーをコールする ​**Stored procedure**​ 操作を設定します。また、​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップします。 - [DDL ステートメントの実行](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-execute-ddl) テーブルや他のデータ構造内のデータを作成または変更する DDL ステートメントを実行する ​**Execute DDL**​ 操作を設定します。 - [一括操作の実行](#execute-bulk-operations)​ 各入力パラメーターが 1 つの値のみを取る場合に使用する ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作を設定します。 - [スクリプトの実行](https://docs.mulesoft.com/jp/db-connector/1.9/database-execute-script) スクリプトを 1 つのステートメントとして実行する ​**Execute Script**​ 操作を設定します。 - [データベースのデータ型の設定](https://docs.mulesoft.com/jp/db-connector/1.9/database-configure-data-types) 特定の接続プロバイダーに接続している場合に使用するカスタムデータ型を設定します。 - [データベーストランザクションの設定](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-transactions) データベース操作をトランザクションのコンテキストで実行します。 ## [](#execute-bulk-operations)一括操作の実行 `insert`​、​`update`​、​`delete`​ 操作は、各入力パラメーターが 1 つの値のみを取る場合に使用できます。または、一括操作では、一連のパラメーター値を使用して 1 つのクエリを実行できます。 一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリは 1 回のみ解析される。 - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである。 - ネットワークオーバーヘッドが最小限に抑えられる。 - RDBMS は一括操作をアトミックに実行できる。 このユースケースでは、コネクタは ​``​、​``​、​``​ の 3 つの操作を提供します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、キー - 値のペアのリストとして受け取ることを想定しています。 次に例を示します。 ```xml #[[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]] insert into customers (id, name, lastName) values (:id, :name, :lastName) ``` 一括操作を使用しない場合、​`delete`​ 操作の実行時に 1 つの条件 ​`(POSITION = X)`​ のみが提供されると、複数の行が条件に一致して削除される可能性があります。 同じ概念が更新にも適用されます。​`UPDATE PRODUCTS set PRICE = PRICE * 0.9 where PRICE > :price`​ を使用するときに、複数の商品に 10% 割引を適用したい場合でも、​`price`​ 入力パラメーターは 1 つの値のみを受け入れます。 価格の異なる商品に異なる割引率を適用するには、多くの操作を実行します。 次の例は、構造 ​`{ price : number, discountRate: number}`​ のオブジェクトのリストであるペイロードです。 ```xml #[ { 'discountRate' : payload.discountRate, 'price' : payload.price, } ] UPDATE PRODUCTS set PRICE = PRICE * :discountRate where PRICE > :price ``` 前の操作ではタスクを遂行できますが、非効率的です。リストの要素ごとに、操作の各要素で 1 つのクエリを実行する必要があります。 - クエリが解析される。 - パラメーターが解決される。 - データベースへの接続が取得される (プールから接続を取得するか、新しい接続を確立する)。 - すべてのネットワークオーバーヘッドが支払われる。 - RBMS でクエリを処理し、変更を適用する。 - 接続が解放される。 いずれかの操作の実行中にエラーが発生した場合 (たとえば、100 行の一括挿入のうち 1 行の挿入に失敗した場合)、1 つの例外がスローされます。 一括操作の一部のステートメントは正常に実行できても、他のステートメントはエラーになる可能性があります。この場合、ドライバーが次のいずれかを実行します。 1. 実行をすぐに停止し、残りのすべての操作を無視する 2. 残りのステートメントの実行を続行する。 どちらの場合も、エラーが発生するたびにアプリケーションログを調べて、失敗の原因を確認できます。この場合、問題の原因を説明する 1 つの例外がスローされます。 ## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス Database Connector v1.8 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。通常、このオブジェクトは Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作 - [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを選択します。パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。 ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#sources-ソース)Sources (ソース) ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。 必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Object (オブジェクト)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。 マップの値には、各パラメーターの実際の割り当てが含まれます。

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス 1.10 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。通常、このオブジェクトは Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作 - [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Query Single](#querySingle) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の TimeUnit。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを照会します。すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。つまり、必要に応じて ​_fetchSize_​ 行分のページが読み込まれます。この操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、次のいずれかが発生するまで接続は開いたままです。 - フローの実行が終了する - ストリームのコンテンツが完全にコンシュームされる - 接続がトランザクションキーである。
LOB はストリームとみなされるため、フローの実行が終了するか、フローの完了前にコンテンツがコンシュームされるまで、接続は開いたままになります。この場合、関連する接続を閉じるための最良の方法が実行されます。
この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#querySingle)Query Single `` この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、Query Single 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと Query Single 操作を使用する場合、接続は操作の実行直後にプールに返されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。 ストアドプロシージャーが 1 つ以上の ResultSet インスタンスを返した場合、結果はすべて一度には読み込まれません。パフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。この動作は、​`_fetchSize_`​ 行分のページが必要に応じて遅延して読み込まれることを意味します。​**Stored Procedure**​ 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Object (オブジェクト)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-3)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-11)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#sources-ソース)Sources (ソース) ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。 必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 #### [](#パラメーター-19)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-12)出力

型

Object (オブジェクト)

### [](#次の設定の場合-12)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。 マップの値には、各パラメーターの実際の割り当てが含まれます。

Max Statement (最大ステートメント)

Number (数値)

DataSource によりキャッシュされる PreparedStatement の合計数を定義します。プールでは、指定された制限に達すると、使用頻度が最も低い PreparedStatement が破棄されます。​0​ に設定すると、ステートメントのキャッシュが無効になります

Test connection on checkout (チェックアウト時に接続をテスト)

Boolean (ブール)

チェックアウト時の接続テストを無効にしてパフォーマンスを向上します。​true​ に設定すると、接続のチェックアウトのたびに操作が実行され、接続が有効であることが確認されます。​c3p0.idleConnectionTestPeriod​ を使用して接続を定期的に確認することをお勧めします。パフォーマンスを向上するには、このプロパティを ​false​ に設定します。

true

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス 1.12 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。このオブジェクトは通常、Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作 - [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Query Single](#querySingle) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の TimeUnit。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを照会します。すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。つまり、必要に応じて ​_fetchSize_​ 行分のページが読み込まれます。この操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、次のいずれかが発生するまで接続は開いたままです。 - フローの実行が終了する - ストリームのコンテンツが完全にコンシュームされる - 接続がトランザクションキーである。
LOB はストリームとみなされるため、フローの実行が終了するか、フローの完了前にコンテンツがコンシュームされるまで、接続は開いたままになります。この場合、関連する接続を閉じるための最良の方法が実行されます。
この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#querySingle)Query Single `` この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、Query Single 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと Query Single 操作を使用する場合、接続は操作の実行直後にプールに返されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。 ストアドプロシージャーが 1 つ以上の ResultSet インスタンスを返した場合、結果はすべて一度には読み込まれません。パフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。この動作は、​`_fetchSize_`​ 行分のページが必要に応じて遅延して読み込まれることを意味します。​**Stored Procedure**​ 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Object (オブジェクト)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-3)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-11)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#ソース)ソース ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。 必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 #### [](#パラメーター-19)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-12)出力

型

Object (オブジェクト)

### [](#次の設定の場合-12)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。 マップの値には、各パラメーターの実際の割り当てが含まれます。

Max Statement (最大ステートメント)

Number (数値)

DataSource によりキャッシュされる PreparedStatement の合計数を定義します。プールでは、指定された制限に達すると、使用頻度が最も低い PreparedStatement が破棄されます。​0​ に設定すると、ステートメントのキャッシュが無効になります

Test connection on checkout (チェックアウト時に接続をテスト)

Boolean (ブール)

チェックアウト時の接続テストを無効にしてパフォーマンスを向上します。​true​ に設定すると、接続のチェックアウトのたびに操作が実行され、接続が有効であることが確認されます。​c3p0.idleConnectionTestPeriod​ を使用して接続を定期的に確認することをお勧めします。パフォーマンスを向上するには、このプロパティを ​false​ に設定します。

true

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

トラストストア

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)Crl File (Crl ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

オブジェクトストア

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス 1.13 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。通常、このオブジェクトは Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作
操作のクエリ内に SQL 関数を組み込むには、​{fn function()}​ 構文を使用します。これにより、JDBC エスケープコールが構成されます。たとえば、​CURRENT_TIMESTAMP​ を ​{fn CURRENT_TIMESTAMP()}​ として記述する必要があります。
- [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Query Single](#querySingle) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の TimeUnit。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを照会します。すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。つまり、必要に応じて ​_fetchSize_​ 行分のページが読み込まれます。この操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、次のいずれかが発生するまで接続は開いたままです。 - フローの実行が終了する - ストリームのコンテンツが完全にコンシュームされる - 接続がトランザクションキーである。
LOB はストリームとみなされるため、フローの実行が終了するか、フローの完了前にコンテンツがコンシュームされるまで、接続は開いたままになります。この場合、関連する接続を閉じるための最良の方法が実行されます。
この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#querySingle)Query Single `` この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、Query Single 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと Query Single 操作を使用する場合、接続は操作の実行直後にプールに返されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。 ストアドプロシージャーが 1 つ以上の ResultSet インスタンスを返した場合、結果はすべて一度には読み込まれません。パフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。この動作は、​`_fetchSize_`​ 行分のページが必要に応じて遅延して読み込まれることを意味します。​**Stored Procedure**​ 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Object (オブジェクト)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-3)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-11)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#sources-ソース)Sources (ソース) ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。 必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 Database Connector 1.13 では、​**\[Max rows (最大行数)\]**​ 項目の値が無視されるため、​**\[Fetch size (フェッチサイズ)\]**​ 項目がストリーミングに依存していても、このソースで \[Fetch size (フェッチサイズ)\] 項目を使用できます。次の Database Connector バージョンでは、このソースの ​**\[Fetch size (フェッチサイズ)\]**​ 項目が削除され、代わりにソースで正しい ​**\[Max rows (最大行数)\]**​ 項目が使用されます。 #### [](#パラメーター-19)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-12)出力

型

Object (オブジェクト)

### [](#次の設定の場合-12)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。 マップの値には、各パラメーターの実際の割り当てが含まれます。

Max Statement (最大ステートメント)

Number (数値)

DataSource によりキャッシュされる PreparedStatement の合計数を定義します。プールでは、指定された制限に達すると、使用頻度が最も低い PreparedStatement が破棄されます。​0​ に設定すると、ステートメントのキャッシュが無効になります

Test connection on checkout (チェックアウト時に接続をテスト)

Boolean (ブール)

チェックアウト時の接続テストを無効にしてパフォーマンスを向上します。​true​ に設定すると、接続のチェックアウトのたびに操作が実行され、接続が有効であることが確認されます。​c3p0.idleConnectionTestPeriod​ を使用して接続を定期的に確認することをお勧めします。パフォーマンスを向上するには、このプロパティを ​false​ に設定します。

true

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

Trust Store (トラストストア)

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)Crl File (Crl ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS (ナノ秒)

  • MICROSECONDS (マイクロ秒)

  • MILLISECONDS (ミリ秒)

  • SECONDS (秒)

  • MINUTES (分)

  • HOURS (時間)

  • DAYS (日)

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス 1.14 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。このオブジェクトは通常、Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Cache Query Template Size (キャッシュクエリテンプレートサイズ)

Number (数値)

接続のキャッシュクエリテンプレートサイズを設定します。

50

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Cache Query Template Size (キャッシュクエリテンプレートサイズ)

Number (数値)

接続のキャッシュクエリテンプレートサイズを設定します。

50

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Cache Query Template Size (キャッシュクエリテンプレートサイズ)

Number (数値)

接続のキャッシュクエリテンプレートサイズを設定します。

50

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Cache Query Template Size (キャッシュクエリテンプレートサイズ)

Number (数値)

接続のキャッシュクエリテンプレートサイズを設定します。

50

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Cache Query Template Size (キャッシュクエリテンプレートサイズ)

Number (数値)

接続のキャッシュクエリテンプレートサイズを設定します。

50

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作
操作のクエリ内に SQL 関数を組み込むには、​{fn function()}​ 構文を使用します。これにより、JDBC エスケープコールが構成されます。たとえば、​CURRENT_TIMESTAMP​ を ​{fn CURRENT_TIMESTAMP()}​ として記述する必要があります。
- [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Query Single](#querySingle) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の TimeUnit。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

入力パラメーター

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを照会します。すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。つまり、必要に応じて ​_fetchSize_​ 行分のページが読み込まれます。この操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、次のいずれかが発生するまで接続は開いたままです。 - フローの実行が終了する - ストリームのコンテンツが完全にコンシュームされる - 接続がトランザクションキーである。
LOB はストリームとみなされるため、フローの実行が終了するか、フローの完了前にコンテンツがコンシュームされるまで、接続は開いたままになります。この場合、関連する接続を閉じるための最良の方法が実行されます。
この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#querySingle)Query Single `` この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、Query Single 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと Query Single 操作を使用する場合、接続は操作の実行直後にプールに返されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーが 1 つ以上の ResultSet インスタンスを返した場合、結果はすべて一度には読み込まれません。パフォーマンスとメモリの問題が発生することを防止するため、結果は自動的にストリーミングされます。この動作は、​`_fetchSize_`​ 行分のページが必要に応じて遅延して読み込まれることを意味します。​**Stored Procedure**​ 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Object (オブジェクト)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-3)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

入力パラメーター

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-11)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#ソース)ソース ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 #### [](#パラメーター-19)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。ナノ秒、マイクロ秒、ミリ秒で指定されている値は、秒に丸められます。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

行が ResultSet から読み取られるときにデータベースからフェッチする行数を指定します。

10

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-12)出力

型

Object (オブジェクト)

### [](#次の設定の場合-12)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。マップの値には、各パラメーターの実際の割り当てが含まれます。この項目を使用して、その他の接続プールプロパティを追加します。

Max Statement (最大ステートメント)

Number (数値)

DataSource によりキャッシュされる PreparedStatement の合計数を定義します。プールでは、指定された制限に達すると、使用頻度が最も低い PreparedStatement が破棄されます。​0​ に設定すると、ステートメントのキャッシュが無効になります

Test connection on checkout (チェックアウト時に接続をテスト)

Boolean (ブール)

チェックアウト時の接続テストを無効にしてパフォーマンスを向上します。​true​ に設定すると、接続のチェックアウトのたびに操作が実行され、接続が有効であることが確認されます。

true

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#Tls)TLS
項目 型 説明 デフォルト値 必須

Enabled Protocols (有効化されたプロトコル)

String (文字列)

このコンテキストで有効化されたプロトコルのカンマ区切りリスト。

Enabled Cipher Suites (有効化された暗号化スイート)

String (文字列)

このコンテキストで有効化された暗号化スイートのカンマ区切りリスト。

トラストストア

Key Store (キーストア)

Revocation Check (取り消し確認)

### [](#TrustStore)トラストストア
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

トラストストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Password (パスワード)

String (文字列)

トラストストアを保護するために使用するパスワード。

Type (型)

String (文字列)

使用するストアの型。

Algorithm (アルゴリズム)

String (文字列)

トラストストアで使用するアルゴリズム。

Insecure (安全ではない)

Boolean (ブール)

true の場合、証明書の検証が実行されず、攻撃に対して接続が脆弱になります。各自の責任で使用してください。

### [](#KeyStore)Key Store (キーストア)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

キーストアの場所 (可能な場合、現在のクラスパスとファイルシステムを基準として解決されます)。

Type (型)

String (文字列)

使用するストアの型。

Alias (別名)

String (文字列)

キーストアに多数の非公開キーがある場合、この属性は、使用する鍵の別名を示します。定義しない場合、デフォルトでファイル内の最初の鍵が使用されます。

Key Password (キーパスワード)

String (文字列)

非公開キーを保護するために使用するパスワード。

Password (パスワード)

String (文字列)

キーストアを保護するために使用するパスワード。

Algorithm (アルゴリズム)

String (文字列)

キーストアで使用するアルゴリズム。

### [](#standard-revocation-check)Standard Revocation Check (標準の取り消し確認)
項目 型 説明 デフォルト値 必須

Only End Entities (最後のエンティティのみ)

Boolean (ブール)

証明書チェーンの最後の要素のみを確認します。

Prefer Crls (CRL を優先)

Boolean (ブール)

最初に OCSP ではなく CRL を試みます。

No Fallback (代替なし)

Boolean (ブール)

第 2 の確認方法 (以前に選択されていない方法) を使用しません。

Soft Fail (ソフトフェール)

Boolean (ブール)

取り消しサーバーに到達できない場合や取り消しサーバーが混雑している場合に検証エラーを回避します。

### [](#custom-ocsp-responder)Custom Ocsp Responder (カスタム Ocsp レスポンダー)
項目 型 説明 デフォルト値 必須

Url

String (文字列)

OCSP レスポンダーの URL。

Cert Alias (証明書の別名)

String (文字列)

(トラストストアに含まれている) OCSP 応答の署名証明書の別名 (存在する場合)。

### [](#crl-file)Crl File (Crl ファイル)
項目 型 説明 デフォルト値 必須

Path (パス)

String (文字列)

CRL ファイルへのパス。

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

オブジェクトストア

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

maxInMemorySize で表される単位

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#システムプロパティ)システムプロパティ
プロパティ 説明 デフォルト値 例

mule.db.commons.defaultParamTypeResolver.enable.fallback

このシステムプロパティではストアドプロシージャー名内の特殊文字が処理されるため、これらの文字が存在する場合の代替設定方法が提供されます。

false

-M-Dmule.db.commons.defaultParamTypeResolver.enable.fallback=true

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector リファレンス 1.9 データベース用 Anypoint Connector (Database Connector) を使用すると、JDBC API を介してリレーショナルデータベースに接続できます。 リリースノート: [Database Connector リリースノート](https://docs.mulesoft.com/jp/release-notes/connector/connector-db) ## [](#設定)設定 * * * ### [](#config)デフォルト設定 次のパラメーターを使用して、デフォルト設定を定義します。 #### [](#パラメーター)パラメーター
名前 型 説明 デフォルト値 必須

Name (名前)

String (文字列)

この設定の名前。コネクタはこの名前の設定を参照します。

x

Connection (接続)

この設定に指定する接続型。

x

Expiration Policy (有効期限ポリシー)

動的設定インスタンスがアイドル状態を続けられる最小時間を設定します。この時間が経過すると、Mule Runtime で期限切れに相当するとみなされます。これは、インスタンスが有効期限の対象となった瞬間にプラットフォームでそのインスタンスが期限切れになるということではありません。必要に応じて、インスタンスがパージされます。

#### [](#接続種別)接続種別 ##### [](#config_data-source)データソース参照接続 参照先のデータソースからデータベース接続を作成する接続プロバイダー実装を設定します。 データソース参照接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-2)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Data Source Ref (データソース参照)

Any (任意)

JDBC DataSource オブジェクトへの参照。通常、このオブジェクトは Spring を使用して作成されます。XA トランザクションを使用する場合は、XADataSource オブジェクトを指定する必要があります。

x

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_derby)Derby 接続 次のパラメーターを使用して、Derby データベースへの接続を作成します。 ###### [](#パラメーター-3)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Database (データベース)

String (文字列)

データベースの名前。

Subsub Protocol (Subsub プロトコル)

String (文字列)

Derby がデータベースを検索する場所を指定します。次の使用可能なオプションがあります。

  • directory​

  • memory​

  • classpath​

  • jar

directory

Create (作成)

Boolean (ブール)

データベースが存在しない場合に作成するかどうかを示します。

false

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_generic)汎用接続 JDBC URL と必須の JDBC ドライバークラスを使用して任意の種類のデータベースの接続を作成する接続プロバイダーで、次のパラメーターを設定します。 汎用接続で​_プロバイダーのカスタム型_​を使用する場合は、データベース設定の \[Advanced (詳細)\] セクションの ​**\[Column Types (列の型)\]**​ フォーム内で型を定義します。 たとえば Oracle DB の場合、\[Constant Field Values (定数項目値)\] ページ (セクション oracle.jdbc.OracleTypes) で正しい ID/型の組み合わせを確認します。 ###### [](#パラメーター-4)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

URL

String (文字列)

データベースへの接続に使用する JDBC URL。

x

Driver Class Name (ドライバークラス名)

String (文字列)

データベースドライバークラスの完全修飾名。

x

ユーザー

String (文字列)

データベースのユーザー名

Password (パスワード)

String (文字列)

データベースのパスワード。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_mssql)Microsoft SQL Server 接続 Microsoft SQL Server データベース用のデータベース接続プロバイダー実装で、次のパラメーターを設定します。 ###### [](#パラメーター-5)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Instance Name (インスタンス名)

String (文字列)

データベースのある SQL Server インスタンスの名前を設定します。

Port (ポート)

Number (数値)

データベースのポートを設定します。

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database Name (データベース名)

String (文字列)

使用するデフォルトデータベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定の接続プロパティのカスタムキー - 値のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_my-sql)MySQL 接続 MySQL データベースに接続するには、次のパラメーターを設定します。 ###### [](#パラメーター-6)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

x

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Database (データベース)

String (文字列)

データベースの名前。

Connection Properties (接続プロパティ)

Object (オブジェクト)

設定のカスタムキー - 値 connectionProperties のリストを指定します。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

##### [](#config_oracle)Oracle 接続 Oracle データベースへの接続を作成するには、次のパラメーターを設定します。 ###### [](#パラメーター-7)パラメーター
名前 型 説明 デフォルト値 必須

Pooling Profile (プーリングプロファイル)

データベース接続プーリングの設定方法を提供します。

Column Types (列の型)

標準以外の列の型を指定します。

Transaction Isolation (トランザクション分離)

Enumeration (列挙)。次のいずれかになります。

  • None (なし)

  • READ_COMMITTED​

  • READ_UNCOMMITTED​

  • REPEATABLE_READ​

  • SERIALIZABLE

  • NOT_CONFIGURED

データベースへの接続時にドライバーに対して設定するトランザクション分離レベル。

NOT_CONFIGURED

Use XA Transactions (XA トランザクションを使用)

Boolean (ブール)

作成したデータソースで XA トランザクションをサポートする必要があるかどうかを示します。

false

Host (ホスト)

String (文字列)

データベースのホストを設定します。

x

Port (ポート)

Number (数値)

データベースのポートを設定します。

1521

ユーザー

String (文字列)

データベースへの認証で使用するユーザー。

Password (パスワード)

String (文字列)

データベースへの認証で使用するパスワード。

Instance (インスタンス)

String (文字列)

データベースインスタンスの名前。

Service Name (サービス名)

String (文字列)

データベースサービス名の名前。

Reconnection (再接続)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

## [](#操作)操作 - [Bulk Delete](#bulkDelete) - [Bulk Insert](#bulkInsert) - [Bulk Update](#bulkUpdate) - [Delete](#delete) - [Execute DDL](#executeDdl) - [Execute Script](#executeScript) - [Insert](#insert) - [Select](#select) - [Query Single](#querySingle) - [Stored Procedure](#storedProcedure) - [Update](#update) ## [](#関連付けられたソース)関連付けられたソース - [On Table Row](#listener) ### [](#bulkDelete)Bulk Delete `` この操作では、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も削除操作を実行できます。これにより、1 つの削除操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-8)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkInsert)Bulk Insert `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も挿入を実行できます。これにより、1 つの挿入操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-9)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリスト。各リスト項目が、挿入される行を表します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれます。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-2)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-2)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-2)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#bulkUpdate)Bulk Update `` この操作は、異なるパラメーターバインドと 1 つのデータベースステートメントを使用して、何度も更新を実行できます。これにより、1 つの更新操作を何度も実行する場合よりもパフォーマンスが向上します。 #### [](#パラメーター-10)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Array of Object (オブジェクトの配列)

マップのリストを指定します。マップには、パラメーターのバインド先のキーおよび値としてパラメーター名が含まれ、すべてのリスト項目は挿入する行を表します。

#[payload]

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-3)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-3)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-3)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#delete)Delete `` この操作は、データベースのデータを削除します。 #### [](#パラメーター-11)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-4)出力

型

Number (数値)

### [](#次の設定の場合-4)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-4)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeDdl)Execute DDL `` この操作は、データベースに対して DDL クエリを実行できます。 #### [](#パラメーター-12)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

String (文字列)

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

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-5)出力

型

Number (数値)

### [](#次の設定の場合-5)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-5)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#executeScript)Execute Script `` この操作は、1 つのデータベースステートメントで SQL スクリプトを実行します。スクリプトはユーザーから提供された場合、パラメーターバインドなしで実行されます。 #### [](#パラメーター-13)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

String (文字列)

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

Script Path (スクリプトパス)

String (文字列)

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

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-6)出力

型

Array of Number (数値の配列)

### [](#次の設定の場合-6)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-6)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#insert)Insert `` この操作は、データベースにデータを挿入します。 #### [](#パラメーター-14)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにするかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-7)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-7)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-7)スロー - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED - DB:BAD\_SQL\_SYNTAX ### [](#select)Select `` この操作は、データベースからデータを選択します。パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 ただし、一部のドライバーはクエリの実行時に結果全体を読み込むため、ストリーミングは機能しません。たとえば、Postgres ドライバーは結果全体をメモリに読み込む場合があります。 #### [](#パラメーター-15)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-8)出力

型

Array of Object (オブジェクトの配列)

### [](#次の設定の場合-8)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用)プーリングプロファイルの使用 プーリングプロファイルと ​**Select**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 #### [](#スロー-8)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#querySingle)Query Single `` この操作は、データベースレコードから 1 つのデータレコードを選択します。複数の行を返す SQL クエリを指定した場合、最初のレコードのみが処理されて返されます。この操作ではストリーミングは使用されません。つまり、Query Single 操作の実行直後に、選択したレコードの完全なコンテンツがメモリに読み込まれます。 #### [](#パラメーター-16)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力を評価する式。式の結果は対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-9)出力

型

Object (オブジェクト)

### [](#次の設定の場合-9)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-2)プーリングプロファイルの使用 プーリングプロファイルと Query Single 操作を使用する場合、接続は操作の実行直後にプールに返されます。 #### [](#スロー-9)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION ### [](#storedProcedure)Stored Procedure `` データベースでストアドプロシージャーを呼び出します。 ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 #### [](#パラメーター-17)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

Streaming Strategy (ストリーミング戦略)

反復可能なストリームを使用するように設定します。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

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

Object (オブジェクト)

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

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

JDBC プリペアードステートメントに設定する出力パラメーターのリスト。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照する必要があります (例: call multiply(:value, :result))。

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-10)出力

型

Object (オブジェクト)

### [](#次の設定の場合-10)次の設定の場合 - [デフォルト設定](#config) ### [](#プーリングプロファイルの使用-3)プーリングプロファイルの使用 プーリングプロファイルと ​**Stored procedure**​ 操作を使用する場合、フローの実行が終了するか、ストリームのコンテンツが完全にコンシュームされるまで接続は開いたままになります。また、接続がトランザクションキーの場合も同様です。この動作は、操作で生成される結果セットにストリームがあるか、結果セットが実行中のトランザクションに含まれている可能性があるために発生します。 Database Connector 1.8.3 以降、​**Stored procedure**​ 操作の接続は、ストリームまたはトランザクションに含まれていない場合に解放されます。 #### [](#スロー-10)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ### [](#update)Update `` データベースのデータを更新します。 #### [](#パラメーター-18)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_JOIN​

  • JOIN_IF_POSSIBLE​

  • NOT_SUPPORTED

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

JOIN_IF_POSSIBLE

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

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

String (文字列)

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

x

Parameter Types (パラメーターの型)

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

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

Object (オブジェクト)

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

Auto Generate Keys (自動生成キー)

Boolean (ブール)

自動生成キーをいつ取得できるようにするかを示します。

false

Auto Generated Keys Column Indexes (自動生成キーの列インデックス)

Array of Number (数値の配列)

どの自動生成キーを取得できるようにするかを示す列インデックスのリスト。

Auto Generated Keys Column Names (自動生成キーの列名)

Array of String (文字列の配列)

どの自動生成キーを取得できるようにする必要があるかを示す列名のリスト。

Target Variable (対象変数)

String (文字列)

操作の出力を保存する変数の名前。

Target Value (対象値)

String (文字列)

操作の出力に対して評価される式。この式の結果が対象変数に保存されます。

#[payload]

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-11)出力

型

Statement Result (ステートメント結果)

### [](#次の設定の場合-11)次の設定の場合 - [デフォルト設定](#config) #### [](#スロー-11)スロー - DB:BAD\_SQL\_SYNTAX - DB:CONNECTIVITY - DB:QUERY\_EXECUTION - DB:RETRY\_EXHAUSTED ## [](#sources-ソース)Sources (ソース) ### [](#listener)On Table Row `` この操作は、一定間隔でテーブルから選択し、取得した行ごとに 1 つのメッセージを生成します。 必要に応じて、ウォーターマークおよび ID 列を提供できます。ウォーターマーク列を提供した場合、その列から取得された値を使用して次のポーリングのコンテンツが絞り込まれるため、より大きなウォーターマーク値を持つ行のみが返されます。ID 列を提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回選択されていないことが自動的に確認されます。 この操作ではストリーミングはサポートされません。つまり、操作結果にアクセスするためにペイロードへの変換をさらに実行する必要はありません。この動作は、バージョン 1.9 でリリースされた ​**Query Single**​ 操作と同じです。 #### [](#パラメーター-19)パラメーター
名前 型 説明 デフォルト値 必須

Configuration (設定)

String (文字列)

使用する設定の名前。

x

Table (テーブル)

String (文字列)

選択元のテーブルの名前。

x

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

String (文字列)

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

Id Column (ID 列)

String (文字列)

行 ID とみなす列の名前。提供した場合、このコンポーネントでは、同じ行が同時ポーリングによって 2 回処理されていないことが確認されます。

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

Enumeration (列挙)。次のいずれかになります。

  • ALWAYS_BEGIN​

  • None (なし)

ソースがトランザクションに関して実行できる開始アクションの種別。

NONE

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

Enumeration (列挙)。次のいずれかになります。

  • LOCAL

  • XA

作成するトランザクションの種別。使用できるかどうかは、Runtime バージョンによって決まります。

LOCAL

Primary Node Only (プライマリノードのみ)

Boolean (ブール)

クラスターでの実行時にこのソースをプライマリノード上でのみ実行する必要があるかどうか。

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

scheduling-strategy

ポーリングをトリガーするスケジューラーを設定します。

x

Redelivery Policy (再配信ポリシー)

同じメッセージの再配信を処理するためのポリシー。

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

Number (数値)

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

0

Query Timeout Unit (クエリタイムアウト単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#queryTimeout​ の時間単位。

SECONDS

Fetch Size (フェッチサイズ)

Number (数値)

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

Max Rows (最大行数)

Number (数値)

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

Reconnection Strategy (再接続戦略)

接続エラーが発生した場合の再試行戦略。

#### [](#出力-12)出力

型

Object (オブジェクト)

### [](#次の設定の場合-12)次の設定の場合 - [デフォルト設定](#config) ## [](#型)型 ### [](#pooling-profile)Pooling Profile (プーリングプロファイル)
項目 型 説明 デフォルト値 必須

Max Pool Size (最大プールサイズ)

Number (数値)

任意の時点にプールで維持される最大接続数

5

Min Pool Size (最小プールサイズ)

Number (数値)

任意の時点にプールで維持される最小接続数

0

Acquire Increment (取得増分)

Number (数値)

プールが枯渇したときに一度に取得を試みる接続数を決定します。

1

Prepared Statement Cache Size (プリペアードステートメントのキャッシュサイズ)

Number (数値)

プールされた接続ごとにキャッシュされるステートメント数を決定します。これを 0 に設定すると、ステートメントのキャッシュが無効になります。

5

Max Wait (最大待機)

Number (数値)

プールが枯渇したときに、接続の取得を試みているクライアントが接続を待機する時間。この値を 0 (デフォルト) に設定すると、無期限に待機します。これは ​checkoutTimeout​ と同じで、追加プロパティで上書きすることはできません。

0

Max Wait Unit (最大待機単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

#maxWait。

SECONDS

Max Idle Time (最大アイドル時間)

Number (数値)

接続が破棄される前に、プールされていて未使用のままでいられる秒数を決定します。この値を 0 (デフォルト) に設定すると、アイドル接続が期限切れになることはありません。

0

Additional Properties (追加プロパティ)

Object (オブジェクト)

プーリングプロファイル設定プロパティの名前をキーとするマップ。式の使用はサポートされていません。これらのプロパティを使用して、以前に指定したプロパティ ([Max Pool Size (最大プールサイズ)] や [Min Pool Size (最小プールサイズ)] など) を上書きすることはできません。上書きしようとした場合、メインプロパティが優先されます。 マップの値には、各パラメーターの実際の割り当てが含まれます。

### [](#ColumnType)Column Type (列の型)
項目 型 説明 デフォルト値 必須

Id

Number (数値)

JDBC ドライバーで使用する型識別子。

x

Type Name (型名)

String (文字列)

JDBC ドライバーで使用するデータ型の名前。

x

Class Name (クラス名)

String (文字列)

データベース種別をマップするために使用する必要がある Java クラスを示します。

### [](#Reconnection)Reconnection (再接続)
項目 型 説明 デフォルト値 必須

Fails Deployment (デプロイメントに失敗)

Boolean (ブール)

アプリケーションがデプロイされると、すべてのコネクタで接続テストが実行されます。​true​ に設定されている場合、関連する再接続戦略をすべて実行した後にテストに合格しないと、デプロイメントが失敗します。

Reconnection Strategy (再接続戦略)

使用する再接続戦略。

### [](#reconnect)Reconnect (再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

Count (数)

Number (数値)

再接続の試行回数。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#reconnect-forever)Reconnect Forever (繰り返し再接続)
項目 型 説明 デフォルト値 必須

Frequency (頻度)

Number (数値)

再接続する頻度 (ミリ秒)。

blocking (ブロック)

Boolean (ブール)

false​ に設定した場合、再接続戦略が個別の非ブロックスレッドで実行されます。

true

### [](#ExpirationPolicy)Expiration Policy (有効期限ポリシー)
項目 型 説明 デフォルト値 必須

Max Idle Time (最大アイドル時間)

Number (数値)

有効期限の対象とみなされるまで、動的設定インスタンスがアイドル状態を維持できる最大時間のスカラー時間値

Time Unit (時間単位)

Enumeration (列挙)。次のいずれかになります。

  • NANOSECONDS

  • MICROSECONDS

  • MILLISECONDS

  • SECONDS

  • MINUTES

  • HOURS

  • DAYS

maxIdleTime​ 属性の時間単位。

### [](#RedeliveryPolicy)Redelivery Policy (再配信ポリシー)
項目 型 説明 デフォルト値 必須

Max Redelivery Count (最大再配信数)

Number (数値)

プロセス失敗メッセージをトリガーするまでに、正常に処理されないメッセージを再配信できる最大回数。

Use Secure Hash (セキュアハッシュを使用)

Boolean (ブール)

再配信されたメッセージの識別にセキュアハッシュアルゴリズムを使用するかどうか。

Message Digest Algorithm (メッセージダイジェストアルゴリズム)

String (文字列)

使用するセキュアハッシュアルゴリズム。これが設定されていない場合、デフォルトの SHA-256 になります。

SHA-256

Id Expression (ID 式)

String (文字列)

メッセージがいつ再配信されたのかを判断するために使用する 1 つ以上の式を定義します。このプロパティは、​[Use secure hash (セキュアハッシュを使用)]​ が ​false​ に設定されている場合にのみ設定できます。

Object Store (オブジェクトストア)

Object Store (オブジェクトストア)

各メッセージの再配信カウンターが保存されるオブジェクトストア。

### [](#ParameterType)Parameter Type (パラメーター種別)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

### [](#TypeClassifier)Type Classifier (型分類子)
項目 型 説明 デフォルト値 必須

Type (型)

Enumeration (列挙)。次のいずれかになります。

  • BIT

  • TINYINT

  • SMALLINT

  • INTEGER

  • BIGINT

  • FLOAT

  • REAL

  • DOUBLE

  • NUMERIC

  • DECIMAL

  • CHAR

  • VARCHAR

  • LONGVARCHAR

  • DATE

  • TIME

  • TIMESTAMP

  • BINARY

  • VARBINARY

  • LONGVARBINARY

  • NULL

  • OTHER

  • JAVA_OBJECT​

  • DISTINCT

  • STRUCT

  • ARRAY

  • BLOB

  • CLOB

  • REF

  • DATALINK

  • BOOLEAN

  • ROWID

  • NCHAR

  • NVARCHAR

  • LONGNVARCHAR

  • NCLOB

  • SQLXML

  • UNKNOWN

Custom Type (カスタム型)

String (文字列)

### [](#StatementResult)Statement Result (ステートメント結果)
項目 型 説明 デフォルト値 必須

Affected Rows (影響を受けた行)

Number (数値)

Generated Keys (生成されたキー)

Object (オブジェクト)

### [](#repeatable-in-memory-iterable)Repeatable In Memory Iterable (反復可能なメモリ内イテラブル)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。デフォルト値は 100 インスタンスです。

100

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。デフォルト値は 100 インスタンスです。

100

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

### [](#repeatable-file-store-iterable)Repeatable File Store Iterable (反復可能なファイルストアイテラブル)
項目 型 説明 デフォルト値 必須

In Memory Objects (メモリ内オブジェクト)

Number (数値)

メモリに保持するインスタンスの最大数。指定された最大数以上が必要な場合、ディスクでのコンテンツのバッファが開始されます。

### [](#repeatable-in-memory-stream)Repeatable In Memory Stream (反復可能なメモリ内ストリーム)
項目 型 説明 デフォルト値 必須

Initial Buffer Size (初期バッファサイズ)

Number (数値)

ストリームをコンシュームし、ランダムアクセスを提供するために初期状態でメモリ内に保持が許容されるインスタンス数。ストリームのデータ量がこのバッファサイズを超える場合は、​[Buffer size increment (バッファサイズ増分)]​ 属性に従って、​[Max in memory size (最大メモリ内サイズ)]​ を上限としてバッファが拡張されます。

Buffer Size Increment (バッファサイズ増分)

Number (数値)

バッファサイズが初期サイズを超えた場合に、拡張する量を指定します。値を 0 以下に設定すると、バッファが拡張されません。その場合、バッファがフルになると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。

Max Buffer Size (最大バッファサイズ)

Number (数値)

使用するメモリの最大量。指定されたメモリの最大値を超えて使用されると、​STREAM_MAXIMUM_SIZE_EXCEEDED​ エラーが発生します。0 以下の値は無制限を意味します。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。 BYTE (バイト) KB MB GB

これらのすべての属性の単位

### [](#repeatable-file-store-stream)Repeatable File Store Stream (反復可能なファイルストアストリーム)
項目 型 説明 デフォルト値 必須

In Memory Size (メモリ内サイズ)

Number (数値)

データをメモリ内に保持するためにストリームで使用する最大メモリを定義します。これを超えると、ディスクのコンテンツがバッファされます。

Buffer Unit (バッファ単位)

Enumeration (列挙)。次のいずれかになります。

  • BYTE (バイト)

  • KB

  • MB

  • GB

[Max in Memory Size (最大メモリ内サイズ)]​ を表す単位

### [](#OutputParameter)Output Parameter (出力パラメーター)
項目 型 説明 デフォルト値 必須

Key (キー)

String (文字列)

入力パラメーターの名前。

x

Type Classifier (型分類子)

x

## [](#関連情報)関連情報 [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Database Connector を使用して MS SQL Server の Azure Active Directory 認証を設定する Database 用 Anypoint Connector (Database Connector) では、接続設定の ​`IntegratedSecurity`​ 値を使用して MS SQL Server の Azure Active Directory 認証を設定できます。次の例は、Anypoint Studio でこの値を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ タブに移動します。 2. **\[Create (作成)\]**​ をクリックします。 3. 検索条件ボックスで、「​`データベース`​」を検索します。 4. **\[Database Config (データベース設定)\]**​ を選択します。 5. **\[OK\]**​ をクリックします。 6. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ で ​**\[MS SQL Server Connection (MS SQL Server 接続)\]**​ を選択します。 7. **\[Advanced (詳細)\]**​ タブで、​**\[Connection properties (接続プロパティ)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 8. 緑のプラス記号をクリックします。 9. **\[Key (キー)\]**​ を ​`Integratedsecurity`​ に設定します。 10. **\[Value (値)\]**​ を ​`true`​ に設定します。 11. **\[Finish (完了)\]**​ をクリックします。 12. データベースへの残り接続文字を完了します。 13. **\[OK\]**​ をクリックします。 ![Anypoint Studio の Integratedsecurity キー設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-connector-integrated.png) **設定 XML**​ エディターでは、​`key="integratedsecurity`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # DDL ステートメントの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute DDL**​ 操作では、データベースに対して DDL クエリを実行できます。データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ## [](#studio-で-execute-ddl-操作を設定する)Studio で Execute DDL 操作を設定する 次の例は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列が含まれる ​`electronic`​ という名前の新しいテーブルを作成する ​**Execute DDL**​ 操作の設定方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute DDL\]**​ 操作を選択します。 2. **\[Execute DDL\]**​ 操作を Studio キャンバスにドラッグします。 この操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute DDL 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-executeddl.png) Figure 1. Execute DDL の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # DDL ステートメントの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute DDL**​ 操作では、データベースに対して DDL クエリを実行できます。データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ## [](#studio-で-execute-ddl-操作を設定する)Studio で Execute DDL 操作を設定する 次の例は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列が含まれる ​`electronic`​ という名前の新しいテーブルを作成する ​**Execute DDL**​ 操作の設定方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute DDL\]**​ 操作を選択します。 2. **\[Execute DDL\]**​ 操作を Studio キャンバスにドラッグします。 この操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute DDL 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-executeddl.png) Figure 1. Execute DDL の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # DDL ステートメントの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute DDL**​ 操作では、データベースに対して DDL クエリを実行できます。データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ## [](#studio-で-execute-ddl-操作を設定する)Studio で Execute DDL 操作を設定する 次の例は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列が含まれる ​`electronic`​ という名前の新しいテーブルを作成する ​**Execute DDL**​ 操作の設定方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute DDL\]**​ 操作を選択します。 2. **\[Execute DDL\]**​ 操作を Studio キャンバスにドラッグします。 この操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute DDL 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-executeddl.png) Figure 1. Execute DDL の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # DDL ステートメントの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute DDL**​ 操作では、データベースに対して DDL クエリを実行できます。データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ## [](#studio-で-execute-ddl-操作を設定する)Studio で Execute DDL 操作を設定する 次の例は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列が含まれる ​`electronic`​ という名前の新しいテーブルを作成する ​**Execute DDL**​ 操作の設定方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute DDL\]**​ 操作を選択します。 2. **\[Execute DDL\]**​ 操作を Studio キャンバスにドラッグします。 この操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute DDL 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-executeddl.png) Figure 1. Execute DDL の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # DDL ステートメントの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute DDL**​ 操作では、データベースに対して DDL クエリを実行できます。データ定義言語 (DDL) ステートメントは、データへの直接アクセスやデータの変更を行わない特別な種別の SQL ステートメントです。代わりに、データ構造やストアドプロシージャーなどの作成、変更、破棄を行います。DDL ステートメントを使用して、テーブルや他のデータ構造内のデータを作成または変更することもできます。 ## [](#studio-で-execute-ddl-操作を設定する)Studio で Execute DDL 操作を設定する 次の例は、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という名前の列が含まれる ​`electronic`​ という名前の新しいテーブルを作成する ​**Execute DDL**​ 操作の設定方法を示しています。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute DDL\]**​ 操作を選択します。 2. **\[Execute DDL\]**​ 操作を Studio キャンバスにドラッグします。 この操作は、テーブルを作成し、エラーがなければ ​`0`​ を返します。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute DDL 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-executeddl.png) Figure 1. Execute DDL の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Mule Maven プラグインを使用したドライバー表示の設定 Anypoint Studio では、ほとんどのケースで問題なくデータベースドライバーの連動関係をセットアップできますが、クラスローディング分離メカニズムの関係上、ドライバークラスの表示を適切にセットアップするためには Mule Maven プラグインを使用しなければならないシナリオもあります。 ## [](#アプリケーション全体のドライバー表示の設定)アプリケーション全体のドライバー表示の設定 追加のデータベースドライバー連動関係を設定して、ドライバーが Mule アプリケーション内のすべてのコンポーネントで表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「共有ライブラリの設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-shared-libraries)​のセクションを参照してください。 ## [](#コネクタのみでのドライバー表示の設定)コネクタのみでのドライバー表示の設定 連動関係の競合リスクがあり、Database Connector とドライバーの連動関係を同じクラスローダーに含める必要があるために、ドライバーがコネクタでのみ表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「追加プラグイン連動関係の設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-plugin-dependencies)​のセクションを参照してください。
ドライバーは、データベースと接続するコンポーネントのクラスローダーのスコープ内に存在する必要があるため、どのコンポーネントがデータベースと接続する必要があるのかを明確にしてください。たとえば、Mule アプリケーションがデータソース参照接続を使用して Spring Bean データソース定義を対象としている場合は、データベースではなく、Spring のクラスローダーがデータベースライブラリを必要とします。追加のアプリケーション連動関係は、​共有ライブラリ​を使用して設定します。
## [](#関連情報)関連情報 - [Mule Maven プラグイン](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.10/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Mule Maven プラグインを使用したドライバー表示の設定 Anypoint Studio では、ほとんどのケースで問題なくデータベースドライバーの連動関係をセットアップできますが、クラスローディング分離メカニズムの関係上、ドライバークラスの表示を適切にセットアップするためには Mule Maven プラグインを使用しなければならないシナリオもあります。 ## [](#アプリケーション全体のドライバー表示の設定)アプリケーション全体のドライバー表示の設定 追加のデータベースドライバー連動関係を設定して、ドライバーが Mule アプリケーション内のすべてのコンポーネントで表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「共有ライブラリの設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-shared-libraries)​のセクションを参照してください。 ## [](#コネクタのみでのドライバー表示の設定)コネクタのみでのドライバー表示の設定 連動関係の競合リスクがあり、Database Connector とドライバーの連動関係を同じクラスローダーに含める必要があるために、ドライバーがコネクタでのみ表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「追加プラグイン連動関係の設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-plugin-dependencies)​のセクションを参照してください。
ドライバーは、データベースと接続するコンポーネントのクラスローダーのスコープ内に存在する必要があるため、どのコンポーネントがデータベースと接続する必要があるのかを明確にしてください。たとえば、Mule アプリケーションがデータソース参照接続を使用して Spring Bean データソース定義を対象としている場合は、データベースではなく、Spring のクラスローダーがデータベースライブラリを必要とします。追加のアプリケーション連動関係は、​共有ライブラリ​を使用して設定します。
## [](#関連情報)関連情報 - [Mule Maven プラグイン](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.12/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Mule Maven プラグインを使用したドライバー表示の設定 Anypoint Studio では、ほとんどのケースで問題なくデータベースドライバーの連動関係をセットアップできますが、クラスローディング分離メカニズムの関係上、ドライバークラスの表示を適切にセットアップするためには Mule Maven プラグインを使用しなければならないシナリオもあります。 ## [](#アプリケーション全体のドライバー表示の設定)アプリケーション全体のドライバー表示の設定 追加のデータベースドライバー連動関係を設定して、ドライバーが Mule アプリケーション内のすべてのコンポーネントで表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「共有ライブラリの設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-shared-libraries)​のセクションを参照してください。 ## [](#コネクタのみでのドライバー表示の設定)コネクタのみでのドライバー表示の設定 連動関係の競合リスクがあり、Database Connector とドライバーの連動関係を同じクラスローダーに含める必要があるために、ドライバーがコネクタでのみ表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「追加プラグイン連動関係の設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-plugin-dependencies)​のセクションを参照してください。
ドライバーは、データベースと接続するコンポーネントのクラスローダーのスコープ内に存在する必要があるため、どのコンポーネントがデータベースと接続する必要があるのかを明確にしてください。たとえば、Mule アプリケーションがデータソース参照接続を使用して Spring Bean データソース定義を対象としている場合は、データベースではなく、Spring のクラスローダーがデータベースライブラリを必要とします。追加のアプリケーション連動関係は、​共有ライブラリ​を使用して設定します。
## [](#関連情報)関連情報 - [Mule Maven プラグイン](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.13/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Mule Maven プラグインを使用したドライバー表示の設定 Anypoint Studio では、ほとんどのケースで問題なくデータベースドライバーの連動関係をセットアップできますが、クラスローディング分離メカニズムの関係上、ドライバークラスの表示を適切にセットアップするためには Mule Maven プラグインを使用しなければならないシナリオもあります。 ## [](#アプリケーション全体のドライバー表示の設定)アプリケーション全体のドライバー表示の設定 追加のデータベースドライバー連動関係を設定して、ドライバーが Mule アプリケーション内のすべてのコンポーネントで表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「共有ライブラリの設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-shared-libraries)​のセクションを参照してください。 ## [](#コネクタのみでのドライバー表示の設定)コネクタのみでのドライバー表示の設定 連動関係の競合リスクがあり、Database Connector とドライバーの連動関係を同じクラスローダーに含める必要があるために、ドライバーがコネクタでのみ表示されるようにする方法は、『Mule Maven プラグイン』ドキュメントの​[「追加プラグイン連動関係の設定」](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept#configure-plugin-dependencies)​のセクションを参照してください。
ドライバーは、データベースと接続するコンポーネントのクラスローダーのスコープ内に存在する必要があるため、どのコンポーネントがデータベースと接続する必要があるのかを明確にしてください。たとえば、Mule アプリケーションがデータソース参照接続を使用して Spring Bean データソース定義を対象としている場合は、データベースではなく、Spring のクラスローダーがデータベースライブラリを必要とします。追加のアプリケーション連動関係は、​共有ライブラリ​を使用して設定します。
## [](#関連情報)関連情報 - [Mule Maven プラグイン](https://docs.mulesoft.com/mule-runtime/latest/mmp-concept) - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Oracle TLS データベース接続の設定 データベース用 Anypoint Connector (Database Connector) を使用すると、専用の Oracle 接続を介して Oracle データベースに安全に接続できます。 Oracle 接続では、次のセキュリティレベルを設定できます。 - TCPS - セキュア TCP トンネル経由での接続 (推奨されません) - TLS - トラストストア検証のみ - mTLS - トラストストア検証とキーストア検証 - mTLS - ユーザー名とパスワードなし (ロールは証明書で付与) ## [](#セキュア-oracle-接続を設定する)セキュア Oracle 接続を設定する 次の例は、Anypoint Studio でセキュアな Oracle 接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`localhost`​、​**\[Port (ポート)\]**​ を ​`1522`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​/​**\[Service Name (サービス名)\]**​ を ​`xe`​ に設定します。 7. **\[TLS\]**​ をクリックします。 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-truststore.jks` - **Password (パスワード)**​: `somepassword` - **型**​: `JKS` 1. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-keystore.jks` - **Password (パスワード)**​: `somepassword` - **Key Password (キーパスワード)**​: `somepassword` - **型**​: `JKS` 2. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 3. **\[OK\]**​ をクリックします。 次のスクリーンショットは、セキュア Oracle 接続の全般的な設定と TLS 設定のウィンドウです。 ![「Secure Oracle Connection General Configuration (セキュア Oracle 接続の全般的な設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracle-connection-secure-general.png) ![「Secure Oracle Connection TLS Configuration (セキュア Oracle 接続の TLS 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracle-connection-secure-tls.png) **設定 XML**​ エディターでは、​`tls:context`​ 設定は次のように記述されます。 ```xml ``` ## [](#セキュア-oracle-接続レベルの例)セキュア Oracle 接続レベルの例 次の例は、各セキュア Oracle 接続レベルの XML 設定を示しています。 ### [](#セキュア-tcp-トンネル経由での-tcps-接続)セキュア TCP トンネル経由での TCPS 接続 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証のみの-tls)トラストストア検証のみの TLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証とキーストア検証を使用する-mtls)トラストストア検証とキーストア検証を使用する mTLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#ユーザー名とパスワードを使用しない-mtls)ユーザー名とパスワードを使用しない mTLS この設定では、ロールは証明書によって付与されます。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.12/database-documentation) - [キーストアとトラストストアを使用した TLS の設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Oracle TLS データベース接続の設定 データベース用 Anypoint Connector (Database Connector) を使用すると、専用の Oracle 接続を介して Oracle データベースに安全に接続できます。 Oracle 接続では、次のセキュリティレベルを設定できます。 - TCPS - セキュア TCP トンネル経由での接続 (推奨されません) - TLS - トラストストア検証のみ - mTLS - トラストストア検証とキーストア検証 - mTLS - ユーザー名とパスワードなし (ロールは証明書で付与) ## [](#セキュア-oracle-接続を設定する)セキュア Oracle 接続を設定する 次の例は、Anypoint Studio でセキュアな Oracle 接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`localhost`​、​**\[Port (ポート)\]**​ を ​`1522`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​/​**\[Service Name (サービス名)\]**​ を ​`xe`​ に設定します。 7. **\[TLS\]**​ をクリックします。 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-truststore.jks` - **Password (パスワード)**​: `somepassword` - **型**​: `JKS` 1. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-keystore.jks` - **Password (パスワード)**​: `somepassword` - **Key Password (キーパスワード)**​: `somepassword` - **型**​: `JKS` 2. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 3. **\[OK\]**​ をクリックします。 次のスクリーンショットは、セキュア Oracle 接続の全般的な設定と TLS 設定のウィンドウです。 ![「Secure Oracle Connection General Configuration (セキュア Oracle 接続の全般的な設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracle-connection-secure-general.png) ![「Secure Oracle Connection TLS Configuration (セキュア Oracle 接続の TLS 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracle-connection-secure-tls.png) **設定 XML**​ エディターでは、​`tls:context`​ 設定は次のように記述されます。 ```xml ``` ## [](#セキュア-oracle-接続レベルの例)セキュア Oracle 接続レベルの例 次の例は、各セキュア Oracle 接続レベルの XML 設定を示しています。 ### [](#セキュア-tcp-トンネル経由での-tcps-接続)セキュア TCP トンネル経由での TCPS 接続 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証のみの-tls)トラストストア検証のみの TLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証とキーストア検証を使用する-mtls)トラストストア検証とキーストア検証を使用する mTLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#ユーザー名とパスワードを使用しない-mtls)ユーザー名とパスワードを使用しない mTLS この設定では、ロールは証明書によって付与されます。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.13/database-documentation) - [キーストアとトラストストアを使用した TLS の設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # Oracle TLS データベース接続の設定 データベース用 Anypoint Connector (Database Connector) を使用すると、専用の Oracle 接続を介して Oracle データベースに安全に接続できます。 Oracle 接続では、次のセキュリティレベルを設定できます。 - TCPS - セキュア TCP トンネル経由での接続 (推奨されません) - TLS - トラストストア検証のみ - mTLS - トラストストア検証とキーストア検証 - mTLS - ユーザー名とパスワードなし (ロールは証明書で付与) ## [](#セキュア-oracle-接続を設定する)セキュア Oracle 接続を設定する 次の例は、Anypoint Studio でセキュアな Oracle 接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`localhost`​、​**\[Port (ポート)\]**​ を ​`1522`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​/​**\[Service Name (サービス名)\]**​ を ​`xe`​ に設定します。 7. **\[TLS\]**​ をクリックします。 8. **\[Trust Store Configuration (トラストストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-truststore.jks` - **Password (パスワード)**​: `somepassword` - **型**​: `JKS` 1. **\[Key Store Configuration (キーストア設定)\]**​ セクションで、次の項目を設定します。 - **Path (パス)**​: `/client-keystore.jks` - **Password (パスワード)**​: `somepassword` - **Key Password (キーパスワード)**​: `somepassword`
Java Secure Socket Extension (JSSE) のため、[Key Store Configuration (キーストア設定)] の ​[Password (パスワード)]​ と ​[Key Password (キーパスワード)]​ 項目に同じパスワード値を設定する必要があります。
- **型**​: `JKS` 2. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 3. **\[OK\]**​ をクリックします。 次のスクリーンショットは、セキュア Oracle 接続の全般的な設定と TLS 設定のウィンドウです。 ![「Secure Oracle Connection General Configuration (セキュア Oracle 接続の全般的な設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracle-connection-secure-general.png) **設定 XML**​ エディターでは、​`tls:context`​ 設定は次のように記述されます。 ```xml ``` ## [](#セキュア-oracle-接続レベルの例)セキュア Oracle 接続レベルの例 次の例は、各セキュア Oracle 接続レベルの XML 設定を示しています。 ### [](#セキュア-tcp-トンネル経由での-tcps-接続)セキュア TCP トンネル経由での TCPS 接続 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証のみの-tls)トラストストア検証のみの TLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#トラストストア検証とキーストア検証を使用する-mtls)トラストストア検証とキーストア検証を使用する mTLS **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ### [](#ユーザー名とパスワードを使用しない-mtls)ユーザー名とパスワードを使用しない mTLS この設定では、ロールは証明書によって付与されます。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) - [キーストアとトラストストアを使用した TLS の設定](https://docs.mulesoft.com/mule-runtime/latest/tls-configuration) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # スクリプトの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute script**​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。 この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 - この操作では、SQL 射影を伴わない任意のスクリプトを実行します。 **Execute script**​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。 **Execute script**​ 操作と ​**Bulk**​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。 次の例は、​**Execute script**​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。 ## [](#スクリプトを埋め込んで-execute-script-操作を設定する)スクリプトを埋め込んで Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリスクリプトを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4`. ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[SQL Query Text (SQL クエリテキスト)\] 項目で、実行する SQL クエリスクリプトを設定)](_images/database-execute-script-1.png) Figure 1. Execute script 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ## [](#スクリプトを参照して-execute-script-操作を設定する)スクリプトを参照して Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. **\[Script Path (スクリプトパス)\]**​ 項目を、読み込むスクリプトファイルの場所に設定します (例: `integration/executescript/bulk-script.sql`​)。 ファイルはクラスパスまたはディスク上のリソースを参照できます。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[Script path (スクリプトパス)\] 項目で、読み込むスクリプトファイルの場所を設定)](_images/database-execute-script-2.png) Figure 2. Execute Script 操作の設定 XML エディターでは、​``​ および ​`file`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # スクリプトの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute script**​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。 この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 - この操作では、SQL 射影を伴わない任意のスクリプトを実行します。 **Execute script**​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。 **Execute script**​ 操作と ​**Bulk**​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。 次の例は、​**Execute script**​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。 ## [](#スクリプトを埋め込んで-execute-script-操作を設定する)スクリプトを埋め込んで Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリスクリプトを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4`. ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[SQL Query Text (SQL クエリテキスト)\] 項目で、実行する SQL クエリスクリプトを設定)](_images/database-execute-script-1.png) Figure 1. Execute script 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ## [](#スクリプトを参照して-execute-script-操作を設定する)スクリプトを参照して Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. **\[Script Path (スクリプトパス)\]**​ 項目を、読み込むスクリプトファイルの場所に設定します (例: `integration/executescript/bulk-script.sql`​)。 ファイルはクラスパスまたはディスク上のリソースを参照できます。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[Script path (スクリプトパス)\] 項目で、読み込むスクリプトファイルの場所を設定)](_images/database-execute-script-2.png) Figure 2. Execute Script 操作の設定 XML エディターでは、​``​ および ​`file`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # スクリプトの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute script**​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。 この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 - この操作では、SQL 射影を伴わない任意のスクリプトを実行します。 **Execute script**​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。 **Execute script**​ 操作と ​**Bulk**​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。 次の例は、​**Execute script**​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。 ## [](#スクリプトを埋め込んで-execute-script-操作を設定する)スクリプトを埋め込んで Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリスクリプトを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4`. ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[SQL Query Text (SQL クエリテキスト)\] 項目で、実行する SQL クエリスクリプトを設定)](_images/database-execute-script-1.png) Figure 1. Execute script 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ## [](#スクリプトを参照して-execute-script-操作を設定する)スクリプトを参照して Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. **\[Script Path (スクリプトパス)\]**​ 項目を、読み込むスクリプトファイルの場所に設定します (例: `integration/executescript/bulk-script.sql`​)。 ファイルはクラスパスまたはディスク上のリソースを参照できます。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[Script path (スクリプトパス)\] 項目で、読み込むスクリプトファイルの場所を設定)](_images/database-execute-script-2.png) Figure 2. Execute Script 操作の設定 XML エディターでは、​``​ および ​`file`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # スクリプトの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute script**​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。 この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 - この操作では、SQL 射影を伴わない任意のスクリプトを実行します。 **Execute script**​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。 **Execute script**​ 操作と ​**Bulk**​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。 次の例は、​**Execute script**​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。 ## [](#スクリプトを埋め込んで-execute-script-操作を設定する)スクリプトを埋め込んで Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリスクリプトを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4`. ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[SQL Query Text (SQL クエリテキスト)\] 項目で、実行する SQL クエリスクリプトを設定)](_images/database-execute-script-1.png) Figure 1. Execute script 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ## [](#スクリプトを参照して-execute-script-操作を設定する)スクリプトを参照して Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. **\[Script Path (スクリプトパス)\]**​ 項目を、読み込むスクリプトファイルの場所に設定します (例: `integration/executescript/bulk-script.sql`​)。 ファイルはクラスパスまたはディスク上のリソースを参照できます。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[Script path (スクリプトパス)\] 項目で、読み込むスクリプトファイルの場所を設定)](_images/database-execute-script-2.png) Figure 2. Execute Script 操作の設定 XML エディターでは、​``​ および ​`file`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # スクリプトの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Execute script**​ 操作ではランダムな長さの SQL スクリプトを 1 つのデータベースステートメントとして実行します。 この操作では、スキーマとテーブルの作成、データの挿入、データの循環が頻繁に実行されます。データの循環は夜間ジョブで実行されます。このジョブでは、データを履歴テーブルに移動およびアーカイブし、オンラインテーブルをパージします。考慮すべき点をいくつか挙げます。 - スクリプトに複数のステートメントを含めることができる。 - さまざまな種別のステートメントを使用できる。 - 入力または出力パラメーターを受け入れることができない。 - この操作では、SQL 射影を伴わない任意のスクリプトを実行します。 **Execute script**​ 操作は、スクリプトを操作に埋め込むか、スクリプトをファイルから参照することで使用できますが、この両方のスクリプトの実行方法を同時に使用することはできません。 スクリプトを実行すると、整数の配列 (実行したステートメントごとに 1 つの要素) が返されます。各整数は、ステートメントの影響を受けたオブジェクトの数を表します。 **Execute script**​ 操作と ​**Bulk**​ 操作では用途が異なります。たとえば、データベースに多数の行を挿入するスクリプトをビルドできますが、スクリプトに動的パラメーターを都合よく提供することはできません。また、スクリプトで SQL インジェクション攻撃を防ぐようにします。 次の例は、​**Execute script**​ 操作を設定する方法 (操作をスクリプトに埋め込む方法とスクリプトをファイルから参照する方法) を示しています。 ## [](#スクリプトを埋め込んで-execute-script-操作を設定する)スクリプトを埋め込んで Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリスクリプトを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4`. ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[SQL Query Text (SQL クエリテキスト)\] 項目で、実行する SQL クエリスクリプトを設定)](_images/database-execute-script-1.png) Figure 1. Execute script 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml update PLANET set NAME='Mercury' where POSITION=0; update PLANET set NAME='Mercury' where POSITION=4 ``` ## [](#スクリプトを参照して-execute-script-操作を設定する)スクリプトを参照して Execute Script 操作を設定する Studio でこの操作を設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Execute script\]**​ 操作を選択します。 2. **\[Execute script\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. **\[Script Path (スクリプトパス)\]**​ 項目を、読み込むスクリプトファイルの場所に設定します (例: `integration/executescript/bulk-script.sql`​)。 ファイルはクラスパスまたはディスク上のリソースを参照できます。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Execute script 操作の設定 (\[Script path (スクリプトパス)\] 項目で、読み込むスクリプトファイルの場所を設定)](_images/database-execute-script-2.png) Figure 2. Execute Script 操作の設定 XML エディターでは、​``​ および ​`file`​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ストアドプロシージャーの入力および出力パラメーターの設定 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作の入力または出力パラメーターを設定して、ストアドプロシージャーで使用するパラメーターを指定します。入力パラメーター (プロシージャーに渡される値)、出力パラメーター (プロシージャーから返される値)、または入出力パラメーター (両方の組み合わせ) があります。 Anypoint Studio では、次の項目を使用して ​**Stored procedure**​ 操作のパラメーターを設定できます。 - **Input parameters (入力パラメーター)**​ ストアドプロシージャーへの入力として指定される値のパラメーター。 通常、これらのパラメーターを介して Mule アプリケーションからストアドプロシージャーに値を渡します。 - **Output parameters (出力パラメーター)** ストアドプロシージャーから Mule アプリケーションに値を返すために使用されるパラメーター。 ストアドプロシージャーを実行したら、これらのパラメーターに割り当てられた値を取得できます。 - **In out parameters (入出力パラメーター)** 入力と出力の両方のパラメーターとして機能するパラメーター。 これらのパラメーターを介してストアドプロシージャーに値を渡すことができます。 ## [](#入力パラメーターを設定する)入力パラメーターを設定する 顧客の注文を管理するための Mule アプリケーションを開発するシナリオを考えます。このケースでは、顧客 ID や注文状況などのパラメーターを取るストアドプロシージャーを使用してデータベースから注文情報を取得します。 次の例は、​**Stored procedure**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定して、特定の条件に基づいて注文の詳細を動的に取得する方法を示しています。 1. Studio で、​**\[Database Configuration (データベース設定)\]**​ 要素を Mule アプリケーションプロジェクトに追加し、必要な MySQL データベース接続の詳細を使用して設定します。 2. 注文情報を取得するために、​**Stored procedure**​ 操作をキャンバスにドラッグします。 3. フローから操作を選択します。 4. **\[SQL Query text (SQL クエリテキスト)\]**​ 項目に​`「{call GetOrderDetails(:customerId, :orderStatus)}」`​と入力します。 これにより、名前付きパラメーター ​`customerId`​ および ​`orderStatus`​ を使用してストアドプロシージャー ​`GetOrderDetails`​ をコールするための SQL ステートメントが定義されます。 5. **\[Input parameters (入力パラメーター)\]**​ 項目に、注文の詳細を取得する次の式を入力します。 ```xml { "name": "customerId", "type": "INTEGER", "value": #[flowVars.customerId] }, { "name": "orderStatus", "type": "VARCHAR", "value": #[message.inboundProperties['orderStatus']] } ``` - `name` 入力パラメーターの名前。 - `type` 入力パラメーターのデータ型。 - `value` Mule 式構文を使用して指定される入力パラメーターの値。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#出力パラメーターを設定する)出力パラメーターを設定する オンライン販売システムの Mule アプリケーションを開発するシナリオを考えます。Mule アプリケーションで注文処理を管理しますが、ストアドプロシージャーを使用し、MySQL データベースから注文の詳細を取得して注文の総額を計算する機能を実装したいと考えています。このシナリオでは、ストアドプロシージャーは注文品目、数量、総額などの詳細を出力パラメーターとして返します。 次の例は、​**Stored procedure**​ 操作の ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定して、注文の詳細と総額を動的に取得する方法を示しています。 1. Studio で、​**\[Database Configuration (データベース設定)\]**​ 要素を MuleSoft アプリケーションプロジェクトに追加し、必要な MySQL データベース接続の詳細を使用して設定します。 2. 注文情報を取得するために、​**Stored procedure**​ 操作をキャンバスにドラッグします。 3. フローから操作を選択します。 4. **\[SQL Query text (SQL クエリテキスト)\]**​ 項目に​`「{call GetOrderDetails(:orderId, :totalAmount, :orderDetails)}」`​と入力します。 これにより、ストアドプロシージャー ​`GetOrderDetails`​ をコールして、​`orderId`​、​`totalAmount`​、​`orderDetails`​ などの出力パラメーターを取得するための SQL ステートメントが定義されます。 5. **\[Output parameters (出力パラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラスアイコンをクリックして **\[Output parameter (出力パラメーター)\]** ウィンドウを開きます。 7. **\[Output parameter (出力パラメーター)\]**​ ウィンドウで、次のパラメーターを設定します。
キー キー値

orderId

INTEGER

totalAmount

Decimal (10 進数)

orderDetails

ARRAY

8. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#入出力パラメーターを設定する)入出力パラメーターを設定する 特定の商品の在庫レベルの更新プロセスを処理する庫管理システムの Mule アプリケーションを開発するシナリオを考えます。このシナリオでは、Mule アプリケーションは PostgreSQL データベースの ​`UpdateStockLevel`​ という名前のストアドプロシージャーとやりとりします。このやりとりには、入力と出力の両方のパラメーターが必要です。 次の例は、​**Stored procedure**​ 操作の ​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定して、在庫レベルの更新を管理する方法を示しています。これには、入力データ (商品 ID と数量) と出力データ (更新された在庫レベル) の両方が含まれます。 1. Studio で、​**\[Database Configuration (データベース設定)\]**​ 要素を MuleSoft アプリケーションプロジェクトに追加し、必要な PostgreSQL データベース接続の詳細を使用して設定します。 2. 注文情報を取得するために、​**Stored procedure**​ 操作をキャンバスにドラッグします。 3. フローから操作を選択します。 4. **\[SQL Query text (SQL クエリテキスト)\]**​ 項目に​`「{call UpdateStockLevel(:productId, :quantity, :updatedStockLevel)}」`​と入力します。 これにより、​`productId`​ および ​`quantity`​ 入力パラメーターと ​`updatedStockLevel`​ 出力パラメーターを使用して ​`UpdateStockLevel`​ という名前のストアドプロシージャーをコールする SQL ステートメントが作成されます。 5. **\[In out parameters (入出力パラメーター)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 6. プラスアイコンをクリックして ​**\[In out parameter (入出力パラメーター)\]**​ ウィンドウを開きます。 7. **\[In out parameter (入出力パラメーター)\]**​ ウィンドウで、次のパラメーターに値を割り当てます。
キー 値

productId

#[payload.productId]

quantity

#[payload.quantity]

updatedStockLevel

(空)

8. **\[Finish (完了)\]**​ をクリックします。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#カスタム型を設定する)カスタム型を設定する ストアドプロシージャーのパラメーターとしてカスタム型を使用する機能は、使用しているデータベースシステムや、使用している Database Connector またはフレームワークの機能によって異なります。 カスタムデータベース型の ​**Stored procedure**​ 操作を使用して Oracle データベースベンダーと連携するときは注意してください。 \+ パッケージ内でストアドプロシージャーを定義する場合、コネクタ接続設定でカスタム型パラメーターの列の型を設定します。 1. Studio で ​**\[Database Config Global Element Properties (データベース設定グローバル要素プロパティ)\]**​ ウィンドウを開きます。 2. **\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Column types (列の型)\]**​ を ​**\[Edit inline (インライン編集)\]**​ に設定します。 4. プラス記号をクリックして ​**\[Column types(列の型)\]**​ ウィンドウを開きます。 5. **\[Column types (列の型)\]**​ ウィンドウで、目的の値で ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目を設定します。 6. **\[OK\]**​ をクリックします。 ![「Column type (列の型)」 設定ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-column-type.png) **設定 XML**​ エディターウィンドウでは、設定は次のように記述されます。 ```xml ``` ストアドプロシージャーがパッケージに含まれていない場合でも、カスタム型パラメーターの ​**\[Column types (列の型)\]**​ を定義することをお勧めします。 ## [](#設定の考慮事項)設定の考慮事項 **入出力パラメーター**​を設定するときは、次の考慮事項を確認してください。 ### [](#ストアドプロシージャーの変数値)ストアドプロシージャーの変数値 次の考慮事項は、すべてのデータベースベンダーに適用されます。Mule Runtime Engine (Mule) では、特定の値セットが含まれる変数を​**入出力パラメーター**​としてストアドプロシージャーに渡す場合、操作の完了後に変更された値を変数に含めることはできません。代わりに、変更された値は操作のペイロードに含まれます。 この動作を説明するために、次のシナリオを考えます。 **入出力パラメーター**​として登録されているパラメーターに、​`foo`​ という名前の変数に保存されている値があります。​`vars.foo`​ がストアドプロシージャー ​`vars.foo`​ に渡されると、操作が呼び出された後にその元の値が返されます。ストアドプロシージャーをチェーニングすると、ストアドプロシージャー ​`A`​ をコールしたときに ​`vars.foo`​ の値が変更され、その後、すでに変更された値を使用してストアドプロシージャー ​`B`​ をコールできると思うかもしれませんが、 変更されたデータは操作の実行後のペイロードのエントリとして返されます。ペイロードには、ストアドプロシージャーで作成できる変更された値が含まれます。そのため、ストアドプロシージャーをチェーニングするには、操作ごとに 1 つのストアドプロシージャーのみを呼び出す必要があります。 **Stored procedure**​ 操作のデータを適切に書式設定するには、​[`prepareArray`​ および ​`prepareStruct`​ 関数](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-udt-stored-procedure#using-preparestruct-and-preparearray-functions)​を使用します。 ### [](#返される値のデータ形式)返される値のデータ形式 **Stored procedure**​ 操作では、想定と異なる形式でデータが返されます。この制限は、すべてのデータベースベンダーに適用されます。 この動作を説明するために、次のシナリオを考えます。 **Stored procedure**​ 操作の入力として SQL 配列または SQL 構造が想定されますが (​`prepareArray`​ および ​`prepareStruct`​ 関数を使用して正しく解決される)、Mule で操作を実行すると、変更された値が含まれる Java オブジェクトが返されます。その結果、操作で想定と異なる形式のデータが返されます。これは、ストアドプロシージャーをチェーニングするときに問題になる可能性があります。 **Stored procedure**​ 操作のデータを適切に書式設定するには、​[`prepareArray`​ および ​`prepareStruct`​ 関数](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-udt-stored-procedure#using-preparestruct-and-preparearray-functions)​を使用します。 # ストアドプロシージャーの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作では、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 次の例は、ストアドプロシージャーのコール可能なステートメントと日付、および ​**\[Input parameters (入力パラメーター)\]**​、​**\[Output parameters (出力パラメーター)\]**​、​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定してストアドプロシージャーを呼び出す方法を示しています。 ## [](#ストアドプロシージャーのコール可能なステートメント)ストアドプロシージャーのコール可能なステートメント Database Connector は、次の形式のコール可能なステートメントの使用をサポートしています。 `{ call procedureName(:param1, :param2, …​, :paramN) }` `:paramN`​ は、ストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致します。ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 すべての JDBC ドライバーが JDBC 仕様形式に準拠している必要がありますが、一部のドライバーには独自の仕様があります。ストアドプロシージャーをコールする方法についての詳細は、JDBC ドライバーのドキュメントを確認してください。たとえば、Snowflake JDBC ドライバーでは、次のように中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定する必要があります。 `call procedureName(:param1, :param2, …​, :paramN)` ### [](#ストアドプロシージャーにパラメーターを渡す)ストアドプロシージャーにパラメーターを渡す パラメーターをストアドプロシージャーに渡す場合、次のようにします。 - ストアドプロシージャーのすべてのパラメーター (デフォルト値が設定される省略可能なパラメーターも含む) を配置する。 - ストアドプロシージャーで定義した順序でパラメーターを配置する。 - パラメーターをパラメーター化し、文字列や数値などをハードコード化しない。 次の例は、​`SYSTEM.employees`​ という名前のテーブルと ​`createEmployee`​ という名前のストアドプロシージャーを作成するときに初期化された Oracle データベースを示しています。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` Database Connector はコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前でパラメーターを一致させようとしても機能しません。例: `{ call createEmployee(e_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }` パラメーターは、適切な順序で指定する必要があります。例: `{ call createEmployee(:name, :age, :date) }`​. ## [](#ストアドプロシージャーのデータの使用)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、次のアプローチは機能しません。 `{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.` コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。前の例を使用して、次の変換を実行します。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call createEmployee(:name, :age, :date) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次の DataWeave コードに設定します。 ```dataweave %dw 2.0 output application/json fun format(d: DateTime) = d as String { format: "yyyy-MM-dd HH:mm:ss" } --- { 'date': format(|2019-10-31T13:00:00.000Z|), 'name': 'rick', 'age': 60 } [source,xml,linenums] ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Stored procedure 操作の日付の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-stored-example-4.png) Figure 1. ストアドプロシージャーの日付の設定 XML エディターでは、DataWeave 変換を使用した ​``​ は次のように記述されます。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する **\[Input parameters (入力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。パラメーターに値を渡す場合、次のようにします。 - 一重引用符を使用して各パラメーターを定義する (例: `'paramName': value`​)。 - デフォルト値には、DataWeave または変数を使用する。これにより、null または空の文字列を渡しても、Mule Runtime Engine によってストアドプロシージャーのデフォルト値が転送されなくなります。 **\[Input parameters (入力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{'description' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameter (入力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-stored-example-1.png) Figure 2. \[Input parameter (入力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } #[{'description' : payload}] ``` ## [](#stored-procedure-操作の-in-out-parameters-入出力パラメーター-項目を設定する)Stored Procedure 操作の \[In Out Parameters (入出力パラメーター)\] 項目を設定する **\[In out parameters (入出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定するパラメーター (入力と出力の両方) の名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 **\[In out parameters (入出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[In out parameters (入出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 4. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 5. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`myInt`​、​**\[Value (値)\]**​ 項目を ​`3`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「In out parameters (入出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-stored-example-2.png) Figure 3. \[In Out parameters (入出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目と-output-parameters-出力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目と \[Output Parameters (出力パラメーター)\] 項目を設定する **\[Output parameters (出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する値のリストを指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `call multiply(:value, :result)`​)。 **\[Input parameters (入力パラメーター)\]**​ 項目と ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call multiplyInts(:int1, :int2, :result1, :int3, :result2) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のように設定します。 ```xml { 'int1' : 3, 'int2' : 4, 'int3' : 5 } ``` 4. **\[Output parameters (出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 6. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`result1`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 7. ステップ 5 と 6 を繰り返して新しい値を追加し、​**\[Key (キー)\]**​ 項目を ​`result2`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameters (入力パラメーター)」 項目と 「Output parameters (出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-stored-example-3.png) Figure 4. \[Input parameters (入力パラメーター)\] と \[Output parameters (出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` ## [](#結果セットを返す)結果セットを返す 結果セットを返すストアドプロシージャーをコールすると、結果セットはデフォルトでペイロードに割り当てられます。返される結果セットを変更するには、​**Stored procedure**​ 操作設定の ​**\[Advanced (詳細)\]**​ タブで ​**\[Target Variable (対象変数)\]**​ または ​**\[Target Value (対象値)\]**​ を設定します。 次の例は、​`languages`​ という名前のテーブルと、結果セットを返す ​`myProc`​ という名前のストアドプロシージャーを作成するときに初期化される MSSQL データベースを示しています。 ```xml CREATE TABLE LANGUAGES (NAME VARCHAR(128), SAMPLE_TEXT VARCHAR(max)); CREATE PROCEDURE myProc AS SELECT * FROM LANGUAGES l; RETURN; ``` 1. **Stored procedure**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`{ call myProc() }`​ に設定します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`aResult`​ に設定します。 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ストアドプロシージャーの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作では、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 次の例は、ストアドプロシージャーのコール可能なステートメントと日付、および ​**\[Input parameters (入力パラメーター)\]**​、​**\[Output parameters (出力パラメーター)\]**​、​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定してストアドプロシージャーを呼び出す方法を示しています。 ## [](#ストアドプロシージャーのコール可能なステートメント)ストアドプロシージャーのコール可能なステートメント Database Connector は、次の形式のコール可能なステートメントの使用をサポートしています。 `{ call procedureName(:param1, :param2, …​, :paramN) }` `:paramN`​ は、ストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致します。ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 すべての JDBC ドライバーが JDBC 仕様形式に準拠している必要がありますが、一部のドライバーには独自の仕様があります。ストアドプロシージャーをコールする方法についての詳細は、JDBC ドライバーのドキュメントを確認してください。たとえば、Snowflake JDBC ドライバーでは、次のように中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定する必要があります。 `call procedureName(:param1, :param2, …​, :paramN)` ### [](#ストアドプロシージャーにパラメーターを渡す)ストアドプロシージャーにパラメーターを渡す パラメーターをストアドプロシージャーに渡す場合、次のようにします。 - ストアドプロシージャーのすべてのパラメーター (デフォルト値が設定される省略可能なパラメーターも含む) を配置する。 - ストアドプロシージャーで定義した順序でパラメーターを配置する。 - パラメーターをパラメーター化し、文字列や数値などをハードコード化しない。 次の例は、​`SYSTEM.employees`​ という名前のテーブルと ​`createEmployee`​ という名前のストアドプロシージャーを作成するときに初期化された Oracle データベースを示しています。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` Database Connector はコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前でパラメーターを一致させようとしても機能しません。例: `{ call createEmployee(e_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }` パラメーターは、適切な順序で指定する必要があります。例: `{ call createEmployee(:name, :age, :date) }`​。 ## [](#ストアドプロシージャーのデータの使用)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、次のアプローチは機能しません。 `{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.` コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。前の例を使用して、次の変換を実行します。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call createEmployee(:name, :age, :date) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次の DataWeave コードに設定します。 ```dataweave %dw 2.0 output application/json fun format(d: DateTime) = d as String { format: "yyyy-MM-dd HH:mm:ss" } --- { 'date': format(|2019-10-31T13:00:00.000Z|), 'name': 'rick', 'age': 60 } [source,xml,linenums] ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Stored procedure 操作の日付の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-stored-example-4.png) Figure 1. ストアドプロシージャーの日付の設定 XML エディターでは、DataWeave 変換を使用した ​``​ は次のように記述されます。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する **\[Input parameters (入力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。パラメーターに値を渡す場合、次のようにします。 - 一重引用符を使用して各パラメーターを定義する (例: `'paramName': value`​)。 - デフォルト値には、DataWeave または変数を使用する。これにより、null または空の文字列を渡しても、Mule Runtime Engine によってストアドプロシージャーのデフォルト値が転送されなくなります。 **\[Input parameters (入力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{'description' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameter (入力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-stored-example-1.png) Figure 2. \[Input parameter (入力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } #[{'description' : payload}] ``` ## [](#stored-procedure-操作の-in-out-parameters-入出力パラメーター-項目を設定する)Stored Procedure 操作の \[In Out Parameters (入出力パラメーター)\] 項目を設定する **\[In out parameters (入出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定するパラメーター (入力と出力の両方) の名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 **\[In out parameters (入出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[In out parameters (入出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 4. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 5. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`myInt`​、​**\[Value (値)\]**​ 項目を ​`3`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「In out parameters (入出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-stored-example-2.png) Figure 3. \[In Out parameters (入出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目と-output-parameters-出力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目と \[Output Parameters (出力パラメーター)\] 項目を設定する **\[Output parameters (出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する値のリストを指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `call multiply(:value, :result)`​)。 **\[Input parameters (入力パラメーター)\]**​ 項目と ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call multiplyInts(:int1, :int2, :result1, :int3, :result2) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のように設定します。 ```xml { 'int1' : 3, 'int2' : 4, 'int3' : 5 } ``` 4. **\[Output parameters (出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 6. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`result1`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 7. ステップ 5 と 6 を繰り返して新しい値を追加し、​**\[Key (キー)\]**​ 項目を ​`result2`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameters (入力パラメーター)」 項目と 「Output parameters (出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-stored-example-3.png) Figure 4. \[Input parameters (入力パラメーター)\] と \[Output parameters (出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` ## [](#結果セットを返す)結果セットを返す 結果セットを返すストアドプロシージャーをコールすると、結果セットはデフォルトでペイロードに割り当てられます。返される結果セットを変更するには、​**Stored procedure**​ 操作設定の ​**\[Advanced (詳細)\]**​ タブで ​**\[Target Variable (対象変数)\]**​ または ​**\[Target Value (対象値)\]**​ を設定します。 次の例は、​`languages`​ という名前のテーブルと、結果セットを返す ​`myProc`​ という名前のストアドプロシージャーを作成するときに初期化される MSSQL データベースを示しています。 ```xml CREATE TABLE LANGUAGES (NAME VARCHAR(128), SAMPLE_TEXT VARCHAR(max)); CREATE PROCEDURE myProc AS SELECT * FROM LANGUAGES l; RETURN; ``` 1. **Stored procedure**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`{ call myProc() }`​ に設定します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`aResult`​ に設定します。 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ストアドプロシージャーの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作では、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 次の例は、ストアドプロシージャーのコール可能なステートメントと日付、および ​**\[Input parameters (入力パラメーター)\]**​、​**\[Output parameters (出力パラメーター)\]**​、​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定してストアドプロシージャーを呼び出す方法を示しています。 ## [](#ストアドプロシージャーのコール可能なステートメント)ストアドプロシージャーのコール可能なステートメント Database Connector は、次の形式のコール可能なステートメントの使用をサポートしています。 `{ call procedureName(:param1, :param2, …​, :paramN) }` `:paramN`​ は、ストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致します。ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 すべての JDBC ドライバーが JDBC 仕様形式に準拠している必要がありますが、一部のドライバーには独自の仕様があります。ストアドプロシージャーをコールする方法についての詳細は、JDBC ドライバーのドキュメントを確認してください。たとえば、Snowflake JDBC ドライバーでは、次のように中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定する必要があります。 `call procedureName(:param1, :param2, …​, :paramN)` ### [](#ストアドプロシージャーにパラメーターを渡す)ストアドプロシージャーにパラメーターを渡す パラメーターをストアドプロシージャーに渡す場合、次のようにします。 - ストアドプロシージャーのすべてのパラメーター (デフォルト値が設定される省略可能なパラメーターも含む) を配置する。 - ストアドプロシージャーで定義した順序でパラメーターを配置する。 - パラメーターをパラメーター化し、文字列や数値などをハードコード化しない。 次の例は、​`SYSTEM.employees`​ という名前のテーブルと ​`createEmployee`​ という名前のストアドプロシージャーを作成するときに初期化された Oracle データベースを示しています。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` Database Connector はコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前でパラメーターを一致させようとしても機能しません。例: `{ call createEmployee(e_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }` パラメーターは、適切な順序で指定する必要があります。例: `{ call createEmployee(:name, :age, :date) }`​. ## [](#ストアドプロシージャーのデータの使用)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、次のアプローチは機能しません。 `{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.` コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。前の例を使用して、次の変換を実行します。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call createEmployee(:name, :age, :date) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次の DataWeave コードに設定します。 ```dataweave %dw 2.0 output application/json fun format(d: DateTime) = d as String { format: "yyyy-MM-dd HH:mm:ss" } --- { 'date': format(|2019-10-31T13:00:00.000Z|), 'name': 'rick', 'age': 60 } [source,xml,linenums] ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Stored procedure 操作の日付の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-stored-example-4.png) Figure 1. ストアドプロシージャーの日付の設定 XML エディターでは、DataWeave 変換を使用した ​``​ は次のように記述されます。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する **\[Input parameters (入力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。パラメーターに値を渡す場合、次のようにします。 - 一重引用符を使用して各パラメーターを定義する (例: `'paramName': value`​)。 - デフォルト値には、DataWeave または変数を使用する。これにより、null または空の文字列を渡しても、Mule Runtime Engine によってストアドプロシージャーのデフォルト値が転送されなくなります。 **\[Input parameters (入力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{'description' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameter (入力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-stored-example-1.png) Figure 2. \[Input parameter (入力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } #[{'description' : payload}] ``` ## [](#stored-procedure-操作の-in-out-parameters-入出力パラメーター-項目を設定する)Stored Procedure 操作の \[In Out Parameters (入出力パラメーター)\] 項目を設定する **\[In out parameters (入出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定するパラメーター (入力と出力の両方) の名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 **\[In out parameters (入出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[In out parameters (入出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 4. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 5. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`myInt`​、​**\[Value (値)\]**​ 項目を ​`3`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「In out parameters (入出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-stored-example-2.png) Figure 3. \[In Out parameters (入出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目と-output-parameters-出力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目と \[Output Parameters (出力パラメーター)\] 項目を設定する **\[Output parameters (出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する値のリストを指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `call multiply(:value, :result)`​)。 **\[Input parameters (入力パラメーター)\]**​ 項目と ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call multiplyInts(:int1, :int2, :result1, :int3, :result2) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のように設定します。 ```xml { 'int1' : 3, 'int2' : 4, 'int3' : 5 } ``` 4. **\[Output parameters (出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 6. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`result1`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 7. ステップ 5 と 6 を繰り返して新しい値を追加し、​**\[Key (キー)\]**​ 項目を ​`result2`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameters (入力パラメーター)」 項目と 「Output parameters (出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-stored-example-3.png) Figure 4. \[Input parameters (入力パラメーター)\] と \[Output parameters (出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` ## [](#結果セットを返す)結果セットを返す 結果セットを返すストアドプロシージャーをコールすると、結果セットはデフォルトでペイロードに割り当てられます。返される結果セットを変更するには、​**Stored procedure**​ 操作設定の ​**\[Advanced (詳細)\]**​ タブで ​**\[Target Variable (対象変数)\]**​ または ​**\[Target Value (対象値)\]**​ を設定します。 次の例は、​`languages`​ という名前のテーブルと、結果セットを返す ​`myProc`​ という名前のストアドプロシージャーを作成するときに初期化される MSSQL データベースを示しています。 ```xml CREATE TABLE LANGUAGES (NAME VARCHAR(128), SAMPLE_TEXT VARCHAR(max)); CREATE PROCEDURE myProc AS SELECT * FROM LANGUAGES l; RETURN; ``` 1. **Stored procedure**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`{ call myProc() }`​ に設定します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`aResult`​ に設定します。 ![「Target Variable (対象変数)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-stored-example-5.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ストアドプロシージャーの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作では、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 次の例は、ストアドプロシージャーのコール可能なステートメントと日付、および ​**\[Input parameters (入力パラメーター)\]**​、​**\[Output parameters (出力パラメーター)\]**​、​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定してストアドプロシージャーを呼び出す方法を示しています。 ## [](#ストアドプロシージャーのコール可能なステートメント)ストアドプロシージャーのコール可能なステートメント Database Connector は、次の形式のコール可能なステートメントの使用をサポートしています。 `{ call procedureName(:param1, :param2, …​, :paramN) }` `:paramN`​ は、ストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致します。ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 すべての JDBC ドライバーが JDBC 仕様形式に準拠している必要がありますが、一部のドライバーには独自の仕様があります。ストアドプロシージャーをコールする方法についての詳細は、JDBC ドライバーのドキュメントを確認してください。たとえば、Snowflake JDBC ドライバーでは、次のように中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定する必要があります。 `call procedureName(:param1, :param2, …​, :paramN)` ### [](#ストアドプロシージャーにパラメーターを渡す)ストアドプロシージャーにパラメーターを渡す パラメーターをストアドプロシージャーに渡す場合、次のようにします。 - ストアドプロシージャーのすべてのパラメーター (デフォルト値が設定される省略可能なパラメーターも含む) を配置する。 - ストアドプロシージャーで定義した順序でパラメーターを配置する。 - パラメーターをパラメーター化し、文字列や数値などをハードコード化しない。 次の例は、​`SYSTEM.employees`​ という名前のテーブルと ​`createEmployee`​ という名前のストアドプロシージャーを作成するときに初期化された Oracle データベースを示しています。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` Database Connector はコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前でパラメーターを一致させようとしても機能しません。例: `{ call createEmployee(e_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }` パラメーターは、適切な順序で指定する必要があります。例: `{ call createEmployee(:name, :age, :date) }`​. ## [](#ストアドプロシージャーのデータの使用)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、次のアプローチは機能しません。 `{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.` コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。前の例を使用して、次の変換を実行します。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call createEmployee(:name, :age, :date) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次の DataWeave コードに設定します。 ```dataweave %dw 2.0 output application/json fun format(d: DateTime) = d as String { format: "yyyy-MM-dd HH:mm:ss" } --- { 'date': format(|2019-10-31T13:00:00.000Z|), 'name': 'rick', 'age': 60 } [source,xml,linenums] ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Stored procedure 操作の日付の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-stored-example-4.png) Figure 1. ストアドプロシージャーの日付の設定 XML エディターでは、DataWeave 変換を使用した ​``​ は次のように記述されます。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する **\[Input parameters (入力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。パラメーターに値を渡す場合、次のようにします。 - 一重引用符を使用して各パラメーターを定義する (例: `'paramName': value`​)。 - デフォルト値には、DataWeave または変数を使用する。これにより、null または空の文字列を渡しても、Mule Runtime Engine によってストアドプロシージャーのデフォルト値が転送されなくなります。 - 入力値を入力するときはパラメーターを使用する必要があります。​**Stored Procedure**​ 操作内の値をハードコードしないでください。 **\[Input parameters (入力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{'myInt' : payload}`​ に設定します。 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } #[{'description' : payload}] ``` ## [](#stored-procedure-操作の-in-out-parameters-入出力パラメーター-項目を設定する)Stored Procedure 操作の \[In Out Parameters (入出力パラメーター)\] 項目を設定する **\[In out parameters (入出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定するパラメーター (入力と出力の両方) の名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 **\[In out parameters (入出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[In out parameters (入出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 4. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 5. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`myInt`​、​**\[Value (値)\]**​ 項目を ​`3`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「In out parameters (入出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-stored-example-2.png) Figure 2. \[In Out parameters (入出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目と-output-parameters-出力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目と \[Output Parameters (出力パラメーター)\] 項目を設定する **\[Output parameters (出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する値のリストを指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `call multiply(:value, :result)`​)。 **\[Input parameters (入力パラメーター)\]**​ 項目と ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call multiplyInts(:int1, :int2, :result1, :int3, :result2) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のように設定します。 ```xml { 'int1' : 3, 'int2' : 4, 'int3' : 5 } ``` 4. **\[Output parameters (出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 6. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`result1`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 7. ステップ 5 と 6 を繰り返して新しい値を追加し、​**\[Key (キー)\]**​ 項目を ​`result2`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameters (入力パラメーター)」 項目と 「Output parameters (出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-stored-example-3.png) Figure 3. \[Input parameters (入力パラメーター)\] と \[Output parameters (出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` ## [](#結果セットを返す)結果セットを返す 結果セットを返すストアドプロシージャーをコールすると、結果セットはデフォルトでペイロードに割り当てられます。返される結果セットを変更するには、​**Stored procedure**​ 操作設定の ​**\[Advanced (詳細)\]**​ タブで ​**\[Target Variable (対象変数)\]**​ または ​**\[Target Value (対象値)\]**​ を設定します。 次の例は、​`languages`​ という名前のテーブルと、結果セットを返す ​`myProc`​ という名前のストアドプロシージャーを作成するときに初期化される MSSQL データベースを示しています。 ```xml CREATE TABLE LANGUAGES (NAME VARCHAR(128), SAMPLE_TEXT VARCHAR(max)); CREATE PROCEDURE myProc AS SELECT * FROM LANGUAGES l; RETURN; ``` 1. **Stored procedure**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`{ call myProc() }`​ に設定します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`aResult`​ に設定します。 ![「Target Variable (対象変数)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-stored-example-5.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ストアドプロシージャーの実行の例 データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作では、データベースでストアドプロシージャーを呼び出します。ストアドプロシージャーで 1 つまたは複数の ResultSet インスタンスが返される場合、パフォーマンスやメモリの問題につながる可能性のある結果の先制消費を回避するため、ストリーミングが自動的に割り当てられます。 次の例は、ストアドプロシージャーのコール可能なステートメントと日付、および ​**\[Input parameters (入力パラメーター)\]**​、​**\[Output parameters (出力パラメーター)\]**​、​**\[In out parameters (入出力パラメーター)\]**​ 項目を設定してストアドプロシージャーを呼び出す方法を示しています。 ## [](#ストアドプロシージャーのコール可能なステートメント)ストアドプロシージャーのコール可能なステートメント Database Connector は、次の形式のコール可能なステートメントの使用をサポートしています。 `{ call procedureName(:param1, :param2, …​, :paramN) }` `:paramN`​ は、ストアドプロシージャー宣言の ​`Nth`​ パラメーターと一致します。ストアドプロシージャーの名前と最初の括弧の間に空白がないことを確認してください。 すべての JDBC ドライバーが JDBC 仕様形式に準拠している必要がありますが、一部のドライバーには独自の仕様があります。ストアドプロシージャーをコールする方法についての詳細は、JDBC ドライバーのドキュメントを確認してください。たとえば、Snowflake JDBC ドライバーでは、次のように中括弧 ​`{`​ および ​`}`​ を使用せずにコール可能なステートメントを設定する必要があります。 `call procedureName(:param1, :param2, …​, :paramN)` ### [](#ストアドプロシージャーにパラメーターを渡す)ストアドプロシージャーにパラメーターを渡す パラメーターをストアドプロシージャーに渡す場合、次のようにします。 - ストアドプロシージャーのすべてのパラメーター (デフォルト値が設定される省略可能なパラメーターも含む) を配置する。 - ストアドプロシージャーで定義した順序でパラメーターを配置する。 - パラメーターをパラメーター化し、文字列や数値などをハードコード化しない。 次の例は、​`SYSTEM.employees`​ という名前のテーブルと ​`createEmployee`​ という名前のストアドプロシージャーを作成するときに初期化された Oracle データベースを示しています。 ```xml CREATE TABLE SYSTEM.employees( employee_id INTEGER GENERATED BY DEFAULT AS IDENTITY, employee_name VARCHAR2(100), employee_age INTEGER, employee_birthday TIMESTAMP, PRIMARY KEY(employee_id) ); CREATE PROCEDURE createEmployee(e_name VARCHAR2, e_age NUMBER, e_birth_date DATE) AS BEGIN INSERT INTO SYSTEM.employees(employee_name, employee_age, employee_birthday) VALUES(e_name, e_age, e_birth_date); END; ``` Database Connector はコール可能なステートメントでの名前付きパラメーターをサポートしていないため、名前でパラメーターを一致させようとしても機能しません。例: `{ call createEmployee(e_age ⇒ :age, e_birth_date ⇒ :date, e_name ⇒ :name) }` パラメーターは、適切な順序で指定する必要があります。例: `{ call createEmployee(:name, :age, :date) }`​. ## [](#ストアドプロシージャーのデータの使用)ストアドプロシージャーのデータの使用 Database Connector は、エンジン固有の組み込み関数の使用をサポートしていません。たとえば、Oracle データベースでプロシージャーをコールする前に日付を特定の形式に変更する場合、次のアプローチは機能しません。 `{ call createEmployee(e_name ⇒ :name, employee_age ⇒ :age, e_birth_date ⇒ TO_DATE(:date, 'YYYY-MM-DD HH:mm:ss')) }.` コール可能なステートメントを呼び出す前に、すべてのデータ変換で DataWeave を使用します。前の例を使用して、次の変換を実行します。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call createEmployee(:name, :age, :date) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次の DataWeave コードに設定します。 ```dataweave %dw 2.0 output application/json fun format(d: DateTime) = d as String { format: "yyyy-MM-dd HH:mm:ss" } --- { 'date': format(|2019-10-31T13:00:00.000Z|), 'name': 'rick', 'age': 60 } [source,xml,linenums] ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Stored procedure 操作の日付の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-stored-example-4.png) Figure 1. ストアドプロシージャーの日付の設定 XML エディターでは、DataWeave 変換を使用した ​``​ は次のように記述されます。 ```xml { call createEmployee(:name, :age, :date) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する **\[Input parameters (入力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。パラメーターに値を渡す場合、次のようにします。 - 一重引用符を使用して各パラメーターを定義する (例: `'paramName': value`​)。 - デフォルト値には、DataWeave または変数を使用する。これにより、null または空の文字列を渡しても、Mule Runtime Engine によってストアドプロシージャーのデフォルト値が転送されなくなります。 **\[Input parameters (入力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{'description' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameter (入力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-stored-example-1.png) Figure 2. \[Input parameter (入力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } #[{'description' : payload}] ``` ## [](#stored-procedure-操作の-in-out-parameters-入出力パラメーター-項目を設定する)Stored Procedure 操作の \[In Out Parameters (入出力パラメーター)\] 項目を設定する **\[In out parameters (入出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定するパラメーター (入力と出力の両方) の名前をキーとするマップを作成する値を指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 **\[In out parameters (入出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call doubleMyInt(:myInt) }` 3. **\[In out parameters (入出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 4. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 5. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`myInt`​、​**\[Value (値)\]**​ 項目を ​`3`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「In out parameters (入出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-stored-example-2.png) Figure 3. \[In Out parameters (入出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call doubleMyInt(:myInt) } ``` ## [](#stored-procedure-操作の-input-parameters-入力パラメーター-項目と-output-parameters-出力パラメーター-項目を設定する)Stored Procedure 操作の \[Input Parameters (入力パラメーター)\] 項目と \[Output Parameters (出力パラメーター)\] 項目を設定する **\[Output parameters (出力パラメーター)\]**​ 項目で、JDBC プリペアードステートメントに設定する値のリストを指定します。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `call multiply(:value, :result)`​)。 **\[Input parameters (入力パラメーター)\]**​ 項目と ​**\[Output parameters (出力パラメーター)\]**​ 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Stored procedure\]**​ 操作を選択します。 2. 操作設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: `{ call multiplyInts(:int1, :int2, :result1, :int3, :result2) }` 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のように設定します。 ```xml { 'int1' : 3, 'int2' : 4, 'int3' : 5 } ``` 4. **\[Output parameters (出力パラメーター)\]**​ 項目を ​`Edit inline`​ に設定します。 5. プラス記号 (​**+**​) をクリックして、新しい値を追加します。 6. 新しいウィンドウで、​**\[Key (キー)\]**​ 項目を ​`result1`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 7. ステップ 5 と 6 を繰り返して新しい値を追加し、​**\[Key (キー)\]**​ 項目を ​`result2`​、​**\[Type (型)\]**​ 項目を ​`INTEGER`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input parameters (入力パラメーター)」 項目と 「Output parameters (出力パラメーター)」 項目を使用した Stored procedure 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-stored-example-3.png) Figure 4. \[Input parameters (入力パラメーター)\] と \[Output parameters (出力パラメーター)\] を使用したストアドプロシージャーの設定 XML エディターでは、​``​ および ​``​ 設定は次のように記述されます。 ```xml { call multiplyInts(:int1, :int2, :result1, :int3, :result2) } #[{ 'int1' : 3, 'int2' : 4, 'int3' : 5 }] ``` ## [](#結果セットを返す)結果セットを返す 結果セットを返すストアドプロシージャーをコールすると、結果セットはデフォルトでペイロードに割り当てられます。返される結果セットを変更するには、​**Stored procedure**​ 操作設定の ​**\[Advanced (詳細)\]**​ タブで ​**\[Target Variable (対象変数)\]**​ または ​**\[Target Value (対象値)\]**​ を設定します。 次の例は、​`languages`​ という名前のテーブルと、結果セットを返す ​`myProc`​ という名前のストアドプロシージャーを作成するときに初期化される MSSQL データベースを示しています。 ```xml CREATE TABLE LANGUAGES (NAME VARCHAR(128), SAMPLE_TEXT VARCHAR(max)); CREATE PROCEDURE myProc AS SELECT * FROM LANGUAGES l; RETURN; ``` 1. **Stored procedure**​ 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`{ call myProc() }`​ に設定します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Target Variable (対象変数)\]**​ を ​`aResult`​ に設定します。 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースからの単一レコードの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Query single**​ 操作では、データベースから単一レコード (行) を返す SQL クエリを実行し、追加の変換なしで結果のペイロードにアクセスできます。この操作では、返された項目はストリーミングされません。クエリを実行すると、返された行のすべての値がメモリに読み込まれ、ペイロードに返されます。 ただし、注意が必要です。行が大きすぎるとメモリ不足になる可能性があります。 また、接続プーリングを使用する場合は、クエリの実行直後に接続がプールに返されるため、アプリケーションで接続が使い果たされることを心配する必要はありません。 **Query single**​ 操作を呼び出す方法は ​**Select**​ 操作と同じですが、​**Query single**​ 操作を使用すると、実際の SQL クエリで返されるレコード数に関係なく、取得する結果は常に 1 つのみになります。 次の例は、MySQL データベースのテーブルから本の情報を取得する操作を Mule アプリケーション内で設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `BOOK`​ というテーブルを作成する SQL ステートメントを実行し、7 件の本情報 (title、author、bookshopName、isbn、price) のレコードを挿入します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![データベースからの単一レコードの照会のフロー](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-query-single-flow.png) Figure 1. データベースからの単一レコードの照会のフロー ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`BOOK`​ というテーブルを作成し、7 件の本レコードを挿入します。増分 ​`id`​ は、テーブルに追加される新しい各本に関連付けられます。たとえば、テーブルに最初に追加された本の ​`id`​ は ​`1`​ になり、2 番目の本の ​`id`​ は ​`2`​ になります。 ```sql USE SYS; CREATE TABLE BOOK( id MEDIUMINT NOT NULL AUTO_INCREMENT, title VARCHAR(100), author VARCHAR(100), bookshopName VARCHAR(100), isbn VARCHAR(13), price SMALLINT, PRIMARY KEY (id) ); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Good Omens', 'Terry Pratchett and Neil Gaiman', 'A.Z. Fell and Co.', '9780060853983', 50); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('A Wizard of Earthsea', 'Ursula K. Le Guin', 'A.Z. Fell and Co.', '9780547773742', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('IT', 'Stephen King', 'A.Z. Fell and Co.', '9781508297123', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Nice and Accurate Prophecies of Agnes Nutter', 'Agnes Nutter', 'A.Z. Fell and Co.', '000000000000', 200); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Cujo', 'Stephen King', 'A.Z. Fell and Co.', '9781501192241', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Nation', 'Terry Pratchett', 'A.Z. Fell and Co.', '9780552557795', 30); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Ocean at the End of the Lane', 'Neil Gaiman', 'A.Z. Fell and Co.', '9780062459367', 30); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mysql` - **Database (データベース)**​: `sys` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. **\[Max pool size (最大プールサイズ)\]**​ 項目を ​`5`​ に設定します。 10. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 11. **\[OK\]**​ をクリックします。 次のスクリーンショットは、HTTP ​**リスナー**​のグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-querysingle-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-querysingle-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ## [](#mule-アプリケーションの作成設定実行テスト)Mule アプリケーションの作成、設定、実行、テスト MySQL データベース接続を設定したら、Mule アプリケーションの作成、設定、実行、テストを行います。 ### [](#http-リスナーと-set-variable-コンポーネントの設定によるフローの作成)HTTP リスナーと Set Variable コンポーネントの設定によるフローの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/select/book/{maxId}`​ に設定します。 `maxId`​ 値パラメーターは、データベースから取得する本レコードの数を示します。データベース接続プールに設定された最大接続数に関係なく、この値を増分できます。 4. **\[Mime Type (Mime タイプ)\]**​ タブで ​**\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/json`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を ​`GET`​ に設定します。 6. **\[Set Variable\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 このコンポーネントでは、​**Query single**​ 操作から取得されるデータベース結果を保存するための新しい変数を作成します。 7. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[[]]`​ に設定します。 ![Set Variable コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-querysingle-example-3.png) Figure 4. Set Variable の設定 ### [](#for-each-コンポーネントquery-single-操作set-payload-コンポーネントの設定)For Each コンポーネント、Query Single 操作、Set Payload コンポーネントの設定 **For Each**​ コンポーネントを使用して、​**HTTP リスナー**​で要求された本の数まで反復処理することで、Mule アプリケーションの作成を継続します。次に、​**Query single**​ 操作を使用して本の情報を取得し、結果をペイロード変数に保存します。 1. **\[For Each\]**​ コンポーネントを ​**\[Set Variable\]**​ の右にドラッグします。 2. **\[Collection (コレクション)\]**​ 項目を ​`#[1 to attributes.uriParams.maxId as Number]`​ に設定します。 HTTP 要求 ​`/select/book/{maxId}`​ を実行すると、この式により、テーブル内の本のコレクションが最初の本 (​`1`​) から ​`maxId`​ パラメーターに設定された本の数まで反復処理されます。 ![For Each の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-querysingle-example-4.png) Figure 5. For Each の設定 3. **\[Query single\]**​ 操作を ​**\[For Each\]**​ コンポーネントにドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目を ​`Database_Config`​ に設定して、MySQL データベース設定に接続します。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT id, title, author FROM BOOK WHERE id = :id`​ に設定します。 このクエリでは、データベースから本の情報を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`![CDATA[#[{'id': payload }]]]`​ に設定します。 この式では、(前述の ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 式で参照されている) キーパラメーター ​`id`​ を、​`SELECT`​ クエリを使用して取得した本情報の結果値である ​`payload`​ にマップします。 ![Query single の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-querysingle-example-5.png) Figure 6. Query single の設定 7. 別の ​**\[Set Variable\]**​ コンポーネントを ​**\[Query single\]**​ 操作の右にドラッグします。 8. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[vars.bookCollection ++ [payload]]`​ に設定します。 元の変数 ​`bookCollection`​ に、取得した本情報の ​`payload`​ が保存されるようになります。 9. **\[Set Payload\]**​ コンポーネントを ​**\[For Each\]**​ コンポーネントの右にドラッグします。 10. **\[Value (値)\]**​ 項目を ​`#[vars.bookCollection]`​ に設定して、変数コンテンツを新しい出力ペイロードとして保存します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-querysingle-example-6.png) Figure 7. Set Payload の設定 ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. コマンドラインで ​`curl localhost:8081/select/book/7`​ を実行して、アプリケーションをテストします。 このコマンドでは、プールに設定されている最大接続数 (​`5`​) に関係なく、テーブルの最初の 7 個の本を選択します。 ## [](#データベースからの単一レコードを照会するための-xml)データベースからの単一レコードを照会するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml SELECT id, title, author FROM BOOK WHERE id = :id ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースからの単一レコードの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Query single**​ 操作では、データベースから単一レコード (行) を返す SQL クエリを実行し、追加の変換なしで結果のペイロードにアクセスできます。この操作では、返された項目はストリーミングされません。クエリを実行すると、返された行のすべての値がメモリに読み込まれ、ペイロードに返されます。 ただし、注意が必要です。行が大きすぎるとメモリ不足になる可能性があります。 また、接続プーリングを使用する場合は、クエリの実行直後に接続がプールに返されるため、アプリケーションで接続が使い果たされることを心配する必要はありません。 **Query single**​ 操作を呼び出す方法は ​**Select**​ 操作と同じですが、​**Query single**​ 操作を使用すると、実際の SQL クエリで返されるレコード数に関係なく、取得する結果は常に 1 つのみになります。 次の例は、MySQL データベースのテーブルから本の情報を取得する操作を Mule アプリケーション内で設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `BOOK`​ というテーブルを作成する SQL ステートメントを実行し、7 件の本情報 (title、author、bookshopName、isbn、price) のレコードを挿入します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![データベースからの単一レコードの照会のフロー](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-query-single-flow.png) Figure 1. データベースからの単一レコードの照会のフロー ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`BOOK`​ というテーブルを作成し、7 件の本レコードを挿入します。増分 ​`id`​ は、テーブルに追加される新しい各本に関連付けられます。たとえば、テーブルに最初に追加された本の ​`id`​ は ​`1`​ になり、2 番目の本の ​`id`​ は ​`2`​ になります。 ```sql USE SYS; CREATE TABLE BOOK( id MEDIUMINT NOT NULL AUTO_INCREMENT, title VARCHAR(100), author VARCHAR(100), bookshopName VARCHAR(100), isbn VARCHAR(13), price SMALLINT, PRIMARY KEY (id) ); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Good Omens', 'Terry Pratchett and Neil Gaiman', 'A.Z. Fell and Co.', '9780060853983', 50); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('A Wizard of Earthsea', 'Ursula K. Le Guin', 'A.Z. Fell and Co.', '9780547773742', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('IT', 'Stephen King', 'A.Z. Fell and Co.', '9781508297123', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Nice and Accurate Prophecies of Agnes Nutter', 'Agnes Nutter', 'A.Z. Fell and Co.', '000000000000', 200); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Cujo', 'Stephen King', 'A.Z. Fell and Co.', '9781501192241', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Nation', 'Terry Pratchett', 'A.Z. Fell and Co.', '9780552557795', 30); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Ocean at the End of the Lane', 'Neil Gaiman', 'A.Z. Fell and Co.', '9780062459367', 30); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mysql` - **Database (データベース)**​: `sys` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. **\[Max pool size (最大プールサイズ)\]**​ 項目を ​`5`​ に設定します。 10. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 11. **\[OK\]**​ をクリックします。 次のスクリーンショットは、HTTP ​**リスナー**​のグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-1.png) Figure 2. HTTP リスナー設定 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-querysingle-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ## [](#mule-アプリケーションの作成設定実行テスト)Mule アプリケーションの作成、設定、実行、テスト MySQL データベース接続を設定したら、Mule アプリケーションの作成、設定、実行、テストを行います。 ### [](#http-リスナーと-set-variable-コンポーネントの設定によるフローの作成)HTTP リスナーと Set Variable コンポーネントの設定によるフローの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/select/book/{maxId}`​ に設定します。 `maxId`​ 値パラメーターは、データベースから取得する本レコードの数を示します。データベース接続プールに設定された最大接続数に関係なく、この値を増分できます。 4. **\[Mime Type (Mime タイプ)\]**​ タブで ​**\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/json`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を ​`GET`​ に設定します。 6. **\[Set Variable\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 このコンポーネントでは、​**Query single**​ 操作から取得されるデータベース結果を保存するための新しい変数を作成します。 7. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[[]]`​ に設定します。 ![Set Variable コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-3.png) Figure 4. Set Variable の設定 ### [](#for-each-コンポーネントquery-single-操作set-payload-コンポーネントの設定)For Each コンポーネント、Query Single 操作、Set Payload コンポーネントの設定 **For Each**​ コンポーネントを使用して、​**HTTP リスナー**​で要求された本の数まで反復処理することで、Mule アプリケーションの作成を継続します。次に、​**Query single**​ 操作を使用して本の情報を取得し、結果をペイロード変数に保存します。 1. **\[For Each\]**​ コンポーネントを ​**\[Set Variable\]**​ の右にドラッグします。 2. **\[Collection (コレクション)\]**​ 項目を ​`#[1 to attributes.uriParams.maxId as Number]`​ に設定します。 HTTP 要求 ​`/select/book/{maxId}`​ を実行すると、この式により、テーブル内の本のコレクションが最初の本 (​`1`​) から ​`maxId`​ パラメーターに設定された本の数まで反復処理されます。 ![For Each の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-4.png) Figure 5. For Each の設定 3. **\[Query single\]**​ 操作を ​**\[For Each\]**​ コンポーネントにドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目を ​`Database_Config`​ に設定して、MySQL データベース設定に接続します。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT id, title, author FROM BOOK WHERE id = :id`​ に設定します。 このクエリでは、データベースから本の情報を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`![CDATA[#[{'id': payload }]]]`​ に設定します。 この式では、(前述の ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 式で参照されている) キーパラメーター ​`id`​ を、​`SELECT`​ クエリを使用して取得した本情報の結果値である ​`payload`​ にマップします。 ![Query single の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-5.png) Figure 6. Query single の設定 7. 別の ​**\[Set Variable\]**​ コンポーネントを ​**\[Query single\]**​ 操作の右にドラッグします。 8. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[vars.bookCollection ++ [payload]]`​ に設定します。 元の変数 ​`bookCollection`​ に、取得した本情報の ​`payload`​ が保存されるようになります。 9. **\[Set Payload\]**​ コンポーネントを ​**\[For Each\]**​ コンポーネントの右にドラッグします。 10. **\[Value (値)\]**​ 項目を ​`#[vars.bookCollection]`​ に設定して、変数のコンテンツを新しい出力ペイロードとして保存します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-6.png) Figure 7. Set Payload の設定 ### [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. コマンドラインで ​`curl localhost:8081/select/book/7`​ を実行して、アプリケーションをテストします。 このコマンドでは、プールに設定されている最大接続数 (​`5`​) に関係なく、テーブルの最初の 7 個の本を選択します。 ## [](#データベースからの単一レコードを照会するための-xml)データベースからの単一レコードを照会するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml SELECT id, title, author FROM BOOK WHERE id = :id ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースからの単一レコードの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Query single**​ 操作では、データベースから単一レコード (行) を返す SQL クエリを実行し、追加の変換なしで結果のペイロードにアクセスできます。この操作では、返された項目はストリーミングされません。クエリを実行すると、返された行のすべての値がメモリに読み込まれ、ペイロードに返されます。 ただし、注意が必要です。行が大きすぎるとメモリ不足になる可能性があります。 また、接続プーリングを使用する場合は、クエリの実行直後に接続がプールに返されるため、アプリケーションで接続が使い果たされることを心配する必要はありません。 **Query single**​ 操作を呼び出す方法は ​**Select**​ 操作と同じですが、​**Query single**​ 操作を使用すると、実際の SQL クエリで返されるレコード数に関係なく、取得する結果は常に 1 つのみになります。 次の例は、MySQL データベースのテーブルから本の情報を取得する操作を Mule アプリケーション内で設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `BOOK`​ というテーブルを作成する SQL ステートメントを実行し、7 件の本情報 (title、author、bookshopName、isbn、price) のレコードを挿入します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![データベースからの単一レコードの照会のフロー](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-query-single-flow.png) Figure 1. データベースからの単一レコードの照会のフロー ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`BOOK`​ というテーブルを作成し、7 件の本レコードを挿入します。増分 ​`id`​ は、テーブルに追加される新しい各本に関連付けられます。たとえば、テーブルに最初に追加された本の ​`id`​ は ​`1`​ になり、2 番目の本の ​`id`​ は ​`2`​ になります。 ```sql USE SYS; CREATE TABLE BOOK( id MEDIUMINT NOT NULL AUTO_INCREMENT, title VARCHAR(100), author VARCHAR(100), bookshopName VARCHAR(100), isbn VARCHAR(13), price SMALLINT, PRIMARY KEY (id) ); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Good Omens', 'Terry Pratchett and Neil Gaiman', 'A.Z. Fell and Co.', '9780060853983', 50); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('A Wizard of Earthsea', 'Ursula K. Le Guin', 'A.Z. Fell and Co.', '9780547773742', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('IT', 'Stephen King', 'A.Z. Fell and Co.', '9781508297123', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Nice and Accurate Prophecies of Agnes Nutter', 'Agnes Nutter', 'A.Z. Fell and Co.', '000000000000', 200); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Cujo', 'Stephen King', 'A.Z. Fell and Co.', '9781501192241', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Nation', 'Terry Pratchett', 'A.Z. Fell and Co.', '9780552557795', 30); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Ocean at the End of the Lane', 'Neil Gaiman', 'A.Z. Fell and Co.', '9780062459367', 30); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mysql` - **Database (データベース)**​: `sys` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. **\[Max pool size (最大プールサイズ)\]**​ 項目を ​`5`​ に設定します。 10. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 11. **\[OK\]**​ をクリックします。 次のスクリーンショットは、HTTP ​**リスナー**​のグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-querysingle-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ## [](#mule-アプリケーションの作成設定実行テスト)Mule アプリケーションの作成、設定、実行、テスト MySQL データベース接続を設定したら、Mule アプリケーションの作成、設定、実行、テストを行います。 ### [](#http-リスナーと-set-variable-コンポーネントの設定によるフローの作成)HTTP リスナーと Set Variable コンポーネントの設定によるフローの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/select/book/{maxId}`​ に設定します。 `maxId`​ 値パラメーターは、データベースから取得する本レコードの数を示します。データベース接続プールに設定された最大接続数に関係なく、この値を増分できます。 4. **\[Mime Type (Mime タイプ)\]**​ タブで ​**\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/json`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を ​`GET`​ に設定します。 6. **\[Set Variable\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 このコンポーネントでは、​**Query single**​ 操作から取得されるデータベース結果を保存するための新しい変数を作成します。 7. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[[]]`​ に設定します。 ![Set Variable コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-3.png) Figure 4. Set Variable の設定 ### [](#for-each-コンポーネントquery-single-操作set-payload-コンポーネントの設定)For Each コンポーネント、Query Single 操作、Set Payload コンポーネントの設定 **For Each**​ コンポーネントを使用して、​**HTTP リスナー**​で要求された本の数まで反復処理することで、Mule アプリケーションの作成を継続します。次に、​**Query single**​ 操作を使用して本の情報を取得し、結果をペイロード変数に保存します。 1. **\[For Each\]**​ コンポーネントを ​**\[Set Variable\]**​ の右にドラッグします。 2. **\[Collection (コレクション)\]**​ 項目を ​`#[1 to attributes.uriParams.maxId as Number]`​ に設定します。 HTTP 要求 ​`/select/book/{maxId}`​ を実行すると、この式により、テーブル内の本のコレクションが最初の本 (​`1`​) から ​`maxId`​ パラメーターに設定された本の数まで反復処理されます。 ![For Each の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-4.png) Figure 5. For Each の設定 3. **\[Query single\]**​ 操作を ​**\[For Each\]**​ コンポーネントにドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目を ​`Database_Config`​ に設定して、MySQL データベース設定に接続します。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT id, title, author FROM BOOK WHERE id = :id`​ に設定します。 このクエリでは、データベースから本の情報を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`![CDATA[#[{'id': payload }]]]`​ に設定します。 この式では、(前述の ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 式で参照されている) キーパラメーター ​`id`​ を、​`SELECT`​ クエリを使用して取得した本情報の結果値である ​`payload`​ にマップします。 ![Query single の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-5.png) Figure 6. Query single の設定 7. 別の ​**\[Set Variable\]**​ コンポーネントを ​**\[Query single\]**​ 操作の右にドラッグします。 8. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[vars.bookCollection ++ [payload]]`​ に設定します。 元の変数 ​`bookCollection`​ に、取得した本情報の ​`payload`​ が保存されるようになります。 9. **\[Set Payload\]**​ コンポーネントを ​**\[For Each\]**​ コンポーネントの右にドラッグします。 10. **\[Value (値)\]**​ 項目を ​`#[vars.bookCollection]`​ に設定して、変数コンテンツを新しい出力ペイロードとして保存します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-6.png) Figure 7. Set Payload の設定 ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. コマンドラインで ​`curl localhost:8081/select/book/7`​ を実行して、アプリケーションをテストします。 このコマンドでは、プールに設定されている最大接続数 (​`5`​) に関係なく、テーブルの最初の 7 個の本を選択します。 ## [](#データベースからの単一レコードを照会するための-xml)データベースからの単一レコードを照会するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml SELECT id, title, author FROM BOOK WHERE id = :id ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースからの単一レコードの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Query single**​ 操作では、データベースから単一レコード (行) を返す SQL クエリを実行し、追加の変換なしで結果のペイロードにアクセスできます。この操作では、返された項目はストリーミングされません。クエリを実行すると、返された行のすべての値がメモリに読み込まれ、ペイロードに返されます。 ただし、注意が必要です。行が大きすぎるとメモリ不足になる可能性があります。 また、接続プーリングを使用する場合は、クエリの実行直後に接続がプールに返されるため、アプリケーションで接続が使い果たされることを心配する必要はありません。 **Query single**​ 操作を呼び出す方法は ​**Select**​ 操作と同じですが、​**Query single**​ 操作を使用すると、実際の SQL クエリで返されるレコード数に関係なく、取得する結果は常に 1 つのみになります。 次の例は、MySQL データベースのテーブルから本の情報を取得する操作を Mule アプリケーション内で設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `BOOK`​ というテーブルを作成する SQL ステートメントを実行し、7 件の本情報 (title、author、bookshopName、isbn、price) のレコードを挿入します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![データベースからの単一レコードの照会のフロー](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-query-single-flow.png) Figure 1. データベースからの単一レコードの照会のフロー ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`BOOK`​ というテーブルを作成し、7 件の本レコードを挿入します。増分 ​`id`​ は、テーブルに追加される新しい各本に関連付けられます。たとえば、テーブルに最初に追加された本の ​`id`​ は ​`1`​ になり、2 番目の本の ​`id`​ は ​`2`​ になります。 ```sql USE SYS; CREATE TABLE BOOK( id MEDIUMINT NOT NULL AUTO_INCREMENT, title VARCHAR(100), author VARCHAR(100), bookshopName VARCHAR(100), isbn VARCHAR(13), price SMALLINT, PRIMARY KEY (id) ); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Good Omens', 'Terry Pratchett and Neil Gaiman', 'A.Z. Fell and Co.', '9780060853983', 50); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('A Wizard of Earthsea', 'Ursula K. Le Guin', 'A.Z. Fell and Co.', '9780547773742', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('IT', 'Stephen King', 'A.Z. Fell and Co.', '9781508297123', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Nice and Accurate Prophecies of Agnes Nutter', 'Agnes Nutter', 'A.Z. Fell and Co.', '000000000000', 200); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Cujo', 'Stephen King', 'A.Z. Fell and Co.', '9781501192241', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Nation', 'Terry Pratchett', 'A.Z. Fell and Co.', '9780552557795', 30); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Ocean at the End of the Lane', 'Neil Gaiman', 'A.Z. Fell and Co.', '9780062459367', 30); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mysql` - **Database (データベース)**​: `sys` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. **\[Max pool size (最大プールサイズ)\]**​ 項目を ​`5`​ に設定します。 10. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 11. **\[OK\]**​ をクリックします。 次のスクリーンショットは、HTTP ​**リスナー**​のグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定」](_images/database-querysingle-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ## [](#mule-アプリケーションの作成設定実行テスト)Mule アプリケーションの作成、設定、実行、テスト MySQL データベース接続を設定したら、Mule アプリケーションの作成、設定、実行、テストを行います。 ### [](#http-リスナーと-set-variable-コンポーネントの設定によるフローの作成)HTTP リスナーと Set Variable コンポーネントの設定によるフローの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/select/book/{maxId}`​ に設定します。 `maxId`​ 値パラメーターは、データベースから取得する本レコードの数を示します。データベース接続プールに設定された最大接続数に関係なく、この値を増分できます。 4. **\[Mime Type (Mime タイプ)\]**​ タブで ​**\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/json`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を ​`GET`​ に設定します。 6. **\[Set Variable\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 このコンポーネントでは、​**Query single**​ 操作から取得されるデータベース結果を保存するための新しい変数を作成します。 7. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[[]]`​ に設定します。 ![Set Variable コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-3.png) Figure 4. Set Variable の設定 ### [](#for-each-コンポーネントquery-single-操作set-payload-コンポーネントの設定)For Each コンポーネント、Query Single 操作、Set Payload コンポーネントの設定 **For Each**​ コンポーネントを使用して、​**HTTP リスナー**​で要求された本の数まで反復処理することで、Mule アプリケーションの作成を継続します。次に、​**Query single**​ 操作を使用して本の情報を取得し、結果をペイロード変数に保存します。 1. **\[For Each\]**​ コンポーネントを ​**\[Set Variable\]**​ の右にドラッグします。 2. **\[Collection (コレクション)\]**​ 項目を ​`#[1 to attributes.uriParams.maxId as Number]`​ に設定します。 HTTP 要求 ​`/select/book/{maxId}`​ を実行すると、この式により、テーブル内の本のコレクションが最初の本 (​`1`​) から ​`maxId`​ パラメーターに設定された本の数まで反復処理されます。 ![For Each の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-4.png) Figure 5. For Each の設定 3. **\[Query single\]**​ 操作を ​**\[For Each\]**​ コンポーネントにドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目を ​`Database_Config`​ に設定して、MySQL データベース設定に接続します。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT id, title, author FROM BOOK WHERE id = :id`​ に設定します。 このクエリでは、データベースから本の情報を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`![CDATA[#[{'id': payload }]]]`​ に設定します。 この式では、(前述の ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 式で参照されている) キーパラメーター ​`id`​ を、​`SELECT`​ クエリを使用して取得した本情報の結果値である ​`payload`​ にマップします。 ![Query single の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-5.png) Figure 6. Query single の設定 7. 別の ​**\[Set Variable\]**​ コンポーネントを ​**\[Query single\]**​ 操作の右にドラッグします。 8. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[vars.bookCollection ++ [payload]]`​ に設定します。 元の変数 ​`bookCollection`​ に、取得した本情報の ​`payload`​ が保存されるようになります。 9. **\[Set Payload\]**​ コンポーネントを ​**\[For Each\]**​ コンポーネントの右にドラッグします。 10. **\[Value (値)\]**​ 項目を ​`#[vars.bookCollection]`​ に設定して、変数のコンテンツを新しい出力ペイロードとして保存します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-6.png) Figure 7. Set Payload の設定 ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. コマンドラインで ​`curl localhost:8081/select/book/7`​ を実行して、アプリケーションをテストします。 このコマンドでは、プールに設定されている最大接続数 (​`5`​) に関係なく、テーブルの最初の 7 個の本を選択します。 ## [](#データベースからの単一レコードを照会するための-xml)データベースからの単一レコードを照会するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml SELECT id, title, author FROM BOOK WHERE id = :id ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースからの単一レコードの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Query single**​ 操作では、データベースから単一レコード (行) を返す SQL クエリを実行し、追加の変換なしで結果のペイロードにアクセスできます。この操作では、返された項目はストリーミングされません。クエリを実行すると、返された行のすべての値がメモリに読み込まれ、ペイロードに返されます。 ただし、注意が必要です。行が大きすぎるとメモリ不足になる可能性があります。 また、接続プーリングを使用する場合は、クエリの実行直後に接続がプールに返されるため、アプリケーションで接続が使い果たされることを心配する必要はありません。 **Query single**​ 操作を呼び出す方法は ​**Select**​ 操作と同じですが、​**Query single**​ 操作を使用すると、実際の SQL クエリで返されるレコード数に関係なく、取得する結果は常に 1 つのみになります。 次の例は、MySQL データベースのテーブルから本の情報を取得する操作を Mule アプリケーション内で設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `BOOK`​ というテーブルを作成する SQL ステートメントを実行し、7 件の本情報 (title、author、bookshopName、isbn、price) のレコードを挿入します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![データベースからの単一レコードの照会のフロー](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-query-single-flow.png) Figure 1. データベースからの単一レコードの照会のフロー ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`BOOK`​ というテーブルを作成し、7 件の本レコードを挿入します。増分 ​`id`​ は、テーブルに追加される新しい各本に関連付けられます。たとえば、テーブルに最初に追加された本の ​`id`​ は ​`1`​ になり、2 番目の本の ​`id`​ は ​`2`​ になります。 ```sql USE SYS; CREATE TABLE BOOK( id MEDIUMINT NOT NULL AUTO_INCREMENT, title VARCHAR(100), author VARCHAR(100), bookshopName VARCHAR(100), isbn VARCHAR(13), price SMALLINT, PRIMARY KEY (id) ); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Good Omens', 'Terry Pratchett and Neil Gaiman', 'A.Z. Fell and Co.', '9780060853983', 50); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('A Wizard of Earthsea', 'Ursula K. Le Guin', 'A.Z. Fell and Co.', '9780547773742', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('IT', 'Stephen King', 'A.Z. Fell and Co.', '9781508297123', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Nice and Accurate Prophecies of Agnes Nutter', 'Agnes Nutter', 'A.Z. Fell and Co.', '000000000000', 200); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Cujo', 'Stephen King', 'A.Z. Fell and Co.', '9781501192241', 20); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('Nation', 'Terry Pratchett', 'A.Z. Fell and Co.', '9780552557795', 30); INSERT INTO BOOK(title, author, bookshopName, isbn, price) VALUES('The Ocean at the End of the Lane', 'Neil Gaiman', 'A.Z. Fell and Co.', '9780062459367', 30); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mysql` - **Database (データベース)**​: `sys` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. **\[Max pool size (最大プールサイズ)\]**​ 項目を ​`5`​ に設定します。 10. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 11. **\[OK\]**​ をクリックします。 次のスクリーンショットは、HTTP ​**リスナー**​のグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-querysingle-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-querysingle-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ## [](#mule-アプリケーションの作成設定実行テスト)Mule アプリケーションの作成、設定、実行、テスト MySQL データベース接続を設定したら、Mule アプリケーションの作成、設定、実行、テストを行います。 ### [](#http-リスナーと-set-variable-コンポーネントの設定によるフローの作成)HTTP リスナーと Set Variable コンポーネントの設定によるフローの作成 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/select/book/{maxId}`​ に設定します。 `maxId`​ 値パラメーターは、データベースから取得する本レコードの数を示します。データベース接続プールに設定された最大接続数に関係なく、この値を増分できます。 4. **\[Mime Type (Mime タイプ)\]**​ タブで ​**\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/json`​ に設定します。 5. **\[Advanced (詳細)\]**​ タブで ​**\[Allowed methods (許可されるメソッド)\]**​ 項目を ​`GET`​ に設定します。 6. **\[Set Variable\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 このコンポーネントでは、​**Query single**​ 操作から取得されるデータベース結果を保存するための新しい変数を作成します。 7. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[[]]`​ に設定します。 ![Set Variable コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-querysingle-example-3.png) Figure 4. Set Variable の設定 ### [](#for-each-コンポーネントquery-single-操作set-payload-コンポーネントの設定)For Each コンポーネント、Query Single 操作、Set Payload コンポーネントの設定 **For Each**​ コンポーネントを使用して、​**HTTP リスナー**​で要求された本の数まで反復処理することで、Mule アプリケーションの作成を継続します。次に、​**Query single**​ 操作を使用して本の情報を取得し、結果をペイロード変数に保存します。 1. **\[For Each\]**​ コンポーネントを ​**\[Set Variable\]**​ の右にドラッグします。 2. **\[Collection (コレクション)\]**​ 項目を ​`#[1 to attributes.uriParams.maxId as Number]`​ に設定します。 HTTP 要求 ​`/select/book/{maxId}`​ を実行すると、この式により、テーブル内の本のコレクションが最初の本 (​`1`​) から ​`maxId`​ パラメーターに設定された本の数まで反復処理されます。 ![For Each の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-querysingle-example-4.png) Figure 5. For Each の設定 3. **\[Query single\]**​ 操作を ​**\[For Each\]**​ コンポーネントにドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目を ​`Database_Config`​ に設定して、MySQL データベース設定に接続します。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT id, title, author FROM BOOK WHERE id = :id`​ に設定します。 このクエリでは、データベースから本の情報を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`![CDATA[#[{'id': payload }]]]`​ に設定します。 この式では、(前述の ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 式で参照されている) キーパラメーター ​`id`​ を、​`SELECT`​ クエリを使用して取得した本情報の結果値である ​`payload`​ にマップします。 ![Query single の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-querysingle-example-5.png) Figure 6. Query single の設定 7. 別の ​**\[Set Variable\]**​ コンポーネントを ​**\[Query single\]**​ 操作の右にドラッグします。 8. **\[Name (名前)\]**​ 項目を ​`bookCollection`​、​**\[Value (値)\]**​ 項目を ​`#[vars.bookCollection ++ [payload]]`​ に設定します。 元の変数 ​`bookCollection`​ に、取得した本情報の ​`payload`​ が保存されるようになります。 9. **\[Set Payload\]**​ コンポーネントを ​**\[For Each\]**​ コンポーネントの右にドラッグします。 10. **\[Value (値)\]**​ 項目を ​`#[vars.bookCollection]`​ に設定して、変数コンテンツを新しい出力ペイロードとして保存します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-querysingle-example-6.png) Figure 7. Set Payload の設定 ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. コマンドラインで ​`curl localhost:8081/select/book/7`​ を実行して、アプリケーションをテストします。 このコマンドでは、プールに設定されている最大接続数 (​`5`​) に関係なく、テーブルの最初の 7 個の本を選択します。 ## [](#データベースからの単一レコードを照会するための-xml)データベースからの単一レコードを照会するための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml SELECT id, title, author FROM BOOK WHERE id = :id ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベーストランザクションの設定の例 データベース用 Anypoint Connector (Database Connector) を使用すると、トランザクションのコンテキストでデータベース操作を実行できます。各操作に ​**\[Transactional action (トランザクションアクション)\]**​ 項目があります。この項目を使用して、アクティブなトランザクションに関して、操作で実行できる結合アクションの種別を指定します。 次の例は、Studio で ​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定する方法 (​**Select**​ 操作の場合と、​**Try**​ スコープコンポーネントを使用して操作をグループ化する場合の両方) を示しています。 ## [](#studio-で-transactional-action-トランザクションアクション-項目を設定する)Studio で \[Transactional Action (トランザクションアクション)\] 項目を設定する 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Transactional action (トランザクションアクション)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS\_JOIN**​ メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - **JOIN\_IF\_POSSIBLE**​ 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - **NOT\_SUPPORTED**​ 存在するトランザクションの外部で実行します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-1.png) Figure 1. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` ## [](#try-スコープの-transactional-action-トランザクションアクション-項目を設定して操作をグループ化する)Try スコープの \[Transactional Action (トランザクションアクション)\] 項目を設定して操作をグループ化する 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。 次の例は、銀行口座振替中に 2 つの Database Connector の ​**Update**​ 操作を使用して、1 つの口座から金額を引き、別の口座に加えるが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックすることを示しています。アクティブなトランザクションがない場合は、​**Try**​ スコープコンポーネントを使用して操作をグループすることでトランザクションを開始できます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`try`​」を検索し、​**\[Try\]**​ スコープコンポーネントを選択します。 2. **\[Try\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Update\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントの内部にドラッグします。 4. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 6. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source`​)。 7. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘source’: payload.source}`​ に設定します。 8. 別の ​**\[Update\]**​ 操作を ​**\[Try\]**​ コンポーネント内の最初の ​**\[Update\]**​ 操作の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目を、以前に作成したデータベース接続に設定します。 10. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target`​)。 11. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘target’’: payload.target}`​ に設定します。 12. フローの ​**\[Try\]**​ スコープコンポーネントを選択します。 13. コンポーネント設定画面で、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Try コンポーネントの \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-2.png) Figure 2. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#トランザクションとストリーミング)トランザクションとストリーミング 一部の Database Connector 操作 (​**Select**​ 操作など) の結果は、自動的にストリーミングされ、すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止します。この動作は、データベース行が必要に応じて遅延して読み込まれることを意味します。 Database Connector 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベーストランザクションの設定の例 データベース用 Anypoint Connector (Database Connector) を使用すると、トランザクションのコンテキストでデータベース操作を実行できます。各操作に ​**\[Transactional action (トランザクションアクション)\]**​ 項目があります。この項目を使用して、アクティブなトランザクションに関して、操作で実行できる結合アクションの種別を指定します。 次の例は、Studio で ​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定する方法 (​**Select**​ 操作の場合と、​**Try**​ スコープコンポーネントを使用して操作をグループ化する場合の両方) を示しています。 ## [](#studio-で-transactional-action-トランザクションアクション-項目を設定する)Studio で \[Transactional Action (トランザクションアクション)\] 項目を設定する 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Transactional action (トランザクションアクション)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS\_JOIN**​ メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - **JOIN\_IF\_POSSIBLE**​ 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - **NOT\_SUPPORTED**​ 存在するトランザクションの外部で実行します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-1.png) Figure 1. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` ## [](#try-スコープの-transactional-action-トランザクションアクション-項目を設定して操作をグループ化する)Try スコープの \[Transactional Action (トランザクションアクション)\] 項目を設定して操作をグループ化する 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。 次の例は、銀行口座振替中に 2 つの Database Connector の ​**Update**​ 操作を使用して、1 つの口座から金額を引き、別の口座に加えるが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックすることを示しています。アクティブなトランザクションがない場合は、​**Try**​ スコープコンポーネントを使用して操作をグループすることでトランザクションを開始できます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`try`​」を検索し、​**\[Try\]**​ スコープコンポーネントを選択します。 2. **\[Try\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Update\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントの内部にドラッグします。 4. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 6. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source`​)。 7. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘source’: payload.source}`​ に設定します。 8. 別の ​**\[Update\]**​ 操作を ​**\[Try\]**​ コンポーネント内の最初の ​**\[Update\]**​ 操作の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目を、以前に作成したデータベース接続に設定します。 10. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target`​)。 11. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘target’’: payload.target}`​ に設定します。 12. フローの ​**\[Try\]**​ スコープコンポーネントを選択します。 13. コンポーネント設定画面で、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Try コンポーネントの \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-2.png) Figure 2. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#トランザクションとストリーミング)トランザクションとストリーミング 一部の Database Connector 操作 (​**Select**​ 操作など) の結果は、自動的にストリーミングされ、すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止します。この動作は、データベース行が必要に応じて遅延して読み込まれることを意味します。 Database Connector 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベーストランザクションの設定の例 データベース用 Anypoint Connector (Database Connector) を使用すると、トランザクションのコンテキストでデータベース操作を実行できます。各操作に ​**\[Transactional action (トランザクションアクション)\]**​ 項目があります。この項目を使用して、アクティブなトランザクションに関して、操作で実行できる結合アクションの種別を指定します。 次の例は、Studio で ​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定する方法 (​**Select**​ 操作の場合と、​**Try**​ スコープコンポーネントを使用して操作をグループ化する場合の両方) を示しています。 ## [](#studio-で-transactional-action-トランザクションアクション-項目を設定する)Studio で \[Transactional Action (トランザクションアクション)\] 項目を設定する 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Transactional action (トランザクションアクション)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS\_JOIN**​ メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - **JOIN\_IF\_POSSIBLE**​ 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - **NOT\_SUPPORTED**​ 存在するトランザクションの外部で実行します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-1.png) Figure 1. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` ## [](#try-スコープの-transactional-action-トランザクションアクション-項目を設定して操作をグループ化する)Try スコープの \[Transactional Action (トランザクションアクション)\] 項目を設定して操作をグループ化する 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。 次の例は、銀行口座振替中に 2 つの Database Connector の ​**Update**​ 操作を使用して、1 つの口座から金額を引き、別の口座に加えるが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックすることを示しています。アクティブなトランザクションがない場合は、​**Try**​ スコープコンポーネントを使用して操作をグループすることでトランザクションを開始できます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`try`​」を検索し、​**\[Try\]**​ スコープコンポーネントを選択します。 2. **\[Try\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Update\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントの内部にドラッグします。 4. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 6. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source`​)。 7. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘source’: payload.source}`​ に設定します。 8. 別の ​**\[Update\]**​ 操作を ​**\[Try\]**​ コンポーネント内の最初の ​**\[Update\]**​ 操作の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目を、以前に作成したデータベース接続に設定します。 10. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target`​)。 11. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘target’’: payload.target}`​ に設定します。 12. フローの ​**\[Try\]**​ スコープコンポーネントを選択します。 13. コンポーネント設定画面で、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Try コンポーネントの \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-2.png) Figure 2. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#トランザクションとストリーミング)トランザクションとストリーミング 一部の Database Connector 操作 (​**Select**​ 操作など) の結果は、自動的にストリーミングされ、すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止します。この動作は、データベース行が必要に応じて遅延して読み込まれることを意味します。 Database Connector 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベーストランザクションの設定の例 データベース用 Anypoint Connector (Database Connector) を使用すると、トランザクションのコンテキストでデータベース操作を実行できます。各操作に ​**\[Transactional action (トランザクションアクション)\]**​ 項目があります。この項目を使用して、アクティブなトランザクションに関して、操作で実行できる結合アクションの種別を指定します。 次の例は、Studio で ​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定する方法 (​**Select**​ 操作の場合と、​**Try**​ スコープコンポーネントを使用して操作をグループ化する場合の両方) を示しています。 ## [](#studio-で-transactional-action-トランザクションアクション-項目を設定する)Studio で \[Transactional Action (トランザクションアクション)\] 項目を設定する 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Transactional action (トランザクションアクション)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS\_JOIN**​ メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - **JOIN\_IF\_POSSIBLE**​ 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - **NOT\_SUPPORTED**​ 存在するトランザクションの外部で実行します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-1.png) Figure 1. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` ## [](#try-スコープの-transactional-action-トランザクションアクション-項目を設定して操作をグループ化する)Try スコープの \[Transactional Action (トランザクションアクション)\] 項目を設定して操作をグループ化する 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。 次の例は、銀行口座振替中に 2 つの Database Connector の ​**Update**​ 操作を使用して、1 つの口座から金額を引き、別の口座に加えるが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックすることを示しています。アクティブなトランザクションがない場合は、​**Try**​ スコープコンポーネントを使用して操作をグループすることでトランザクションを開始できます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`try`​」を検索し、​**\[Try\]**​ スコープコンポーネントを選択します。 2. **\[Try\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Update\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントの内部にドラッグします。 4. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 6. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source`​)。 7. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘source’: payload.source}`​ に設定します。 8. 別の ​**\[Update\]**​ 操作を ​**\[Try\]**​ コンポーネント内の最初の ​**\[Update\]**​ 操作の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目を、以前に作成したデータベース接続に設定します。 10. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target`​)。 11. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘target’’: payload.target}`​ に設定します。 12. フローの ​**\[Try\]**​ スコープコンポーネントを選択します。 13. コンポーネント設定画面で、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Try コンポーネントの \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-2.png) Figure 2. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#トランザクションとストリーミング)トランザクションとストリーミング 一部の Database Connector 操作 (​**Select**​ 操作など) の結果は、自動的にストリーミングされ、すべての結果が一度に読み込まれることでパフォーマンスとメモリの問題が発生することを防止します。この動作は、データベース行が必要に応じて遅延して読み込まれることを意味します。 Database Connector 操作がトランザクション (​**Try**​ スコープコンポーネントなど) の内部で実行されて、データがコンシュームされる前にトランザクションが終了した場合、読み込まれていない結果にアクセスしようとするとエラーとなります。 ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベーストランザクションの設定の例 データベース用 Anypoint Connector (Database Connector) を使用すると、トランザクションのコンテキストでデータベース操作を実行できます。各操作に ​**\[Transactional action (トランザクションアクション)\]**​ 項目があります。この項目を使用して、アクティブなトランザクションに関して、操作で実行できる結合アクションの種別を指定します。 次の例は、Studio で ​**\[Transactional action (トランザクションアクション)\]**​ 項目を設定する方法 (​**Select**​ 操作の場合と、​**Try**​ スコープコンポーネントを使用して操作をグループ化する場合の両方) を示しています。 ## [](#studio-で-transactional-action-トランザクションアクション-項目を設定する)Studio で \[Transactional Action (トランザクションアクション)\] 項目を設定する 項目を設定する手順は、次のとおりです。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. コネクタ設定画面で、​**\[Advanced (詳細)\]**​ タブをクリックします。 3. **\[Transactional action (トランザクションアクション)\]**​ 項目を次のいずれかのオプションに設定します。 - **ALWAYS\_JOIN**​ メッセージの受信時にトランザクションが進行中であると想定します。トランザクションがない場合、エラーが発生します。 - **JOIN\_IF\_POSSIBLE**​ 現在のトランザクションが使用可能な場合、そのトランザクションを結合します。それ以外の場合、トランザクションは実行されません。 - **NOT\_SUPPORTED**​ 存在するトランザクションの外部で実行します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-1.png) Figure 1. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml ``` ## [](#try-スコープの-transactional-action-トランザクションアクション-項目を設定して操作をグループ化する)Try スコープの \[Transactional Action (トランザクションアクション)\] 項目を設定して操作をグループ化する 場合によっては、複数のクエリを同じトランザクションのコンテキストでアトミックに実行する必要があります。これらのクエリを、すでに存在するトランザクションのコンテキストで実行した場合、クエリは同じトランザクションに属します。 次の例は、銀行口座振替中に 2 つの Database Connector の ​**Update**​ 操作を使用して、1 つの口座から金額を引き、別の口座に加えるが、この 2 つの操作のいずれかが失敗した場合、両方の操作をロールバックすることを示しています。アクティブなトランザクションがない場合は、​**Try**​ スコープコンポーネントを使用して操作をグループすることでトランザクションを開始できます。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`try`​」を検索し、​**\[Try\]**​ スコープコンポーネントを選択します。 2. **\[Try\]**​ スコープコンポーネントを Studio キャンバスにドラッグします。 3. **\[Update\]**​ 操作を ​**\[Try\]**​ スコープコンポーネントの内部にドラッグします。 4. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 6. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source`​)。 7. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘source’: payload.source}`​ に設定します。 8. 別の ​**\[Update\]**​ 操作を ​**\[Try\]**​ コンポーネント内の最初の ​**\[Update\]**​ 操作の右にドラッグします。 9. **\[Connector configuration (コネクタ設定)\]**​ 項目を、以前に作成したデータベース接続に設定します。 10. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target`​)。 11. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{‘money’ : payload.money, ‘target’’: payload.target}`​ に設定します。 12. フローの ​**\[Try\]**​ スコープコンポーネントを選択します。 13. コンポーネント設定画面で、​**\[Transactional action (トランザクションアクション)\]**​ 項目を ​`ALWAYS_BEGIN`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Try コンポーネントの \[Transactional action (トランザクションアクション)\] 項目の設定](_images/database-transactions-2.png) Figure 2. \[Transactional action (トランザクションアクション)\] の設定 XML エディターでは、​`transactionalAction`​ 設定は次のように記述されます。 ```xml UPDATE ACCOUNT set BALANCE = BALANCE - :money where ID = :source #[{'money' : payload.money, 'source': payload.source}] UPDATE ACCOUNT set BALANCE = BALANCE + :money where ID = :target #[{'money' : payload.money, 'target'': payload.target}] ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースのデータの挿入、更新、および削除の例 データベース用 Anypoint Connector (Database Connector) では、データベースのデータを管理できるようにする ​**Insert**​、​**Update**​、​**Delete**​ 操作がサポートされています。 次の例では、​`electronic`​ という名前のテーブルが含まれる ​`Products`​ という名前のデータベーススキーマのデータを挿入、更新、削除します。このテーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#studio-で-insert-操作を設定する)Studio で Insert 操作を設定する テーブル ​`electronic`​ がすでに作成されていて、​`dbConfig`​ という名前の Database Connector 接続設定がある場合、テーブルに新しいレコードを挿入する ​**Insert**​ 操作を設定できます。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```XML INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。 次のスクリーンショットは、Studio の設定を示しています。 ![Insert 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-insert-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` ### [](#insert-操作の-input-parameters-入力パラメーター-項目を設定する)Insert 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する 入力パラメーターの利点を得るには、次のように同等の SQL クエリを構築します。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、次のパラメーターを設定します。 ```xml { name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5 } ``` 次のスクリーンショットは、​**\[Input Parameter (入力パラメーター)\]**​ 項目の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-insert-example-2.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ### [](#insert-操作の-auto-generate-keys-自動生成キー-項目を設定する)Insert 操作の \[Auto Generate Keys (自動生成キー)\] 項目を設定する **Insert**​ 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。 次の例の出力では、行は正常にテーブルに追加されているが、マップ ​`generatedKeys`​ が空であることが示されています。マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 情報をアクティブ化してキーを生成する手順は、次のとおりです。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Auto generate keys (自動生成キー)\]**​ 項目を ​**\[True\]**​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-insert-example-3.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、目的の列名が含まれるリストを設定して、返される列を指定できます。例: 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Auto generate column names (列名を自動生成)\]**​ 項目を \[​`Expression or Bean reference`​ (式または bean 参照)\] に設定して、項目を 1 つの文字列要素が含まれる DataWeave リストに設定します。 3. \[expression (式)\] 項目を ​`['id']`​ に設定して、​`id`​ 列のみが返されるようにします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Auto generate column names (列名を自動生成)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-insert-example-4.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ## [](#studio-で-update-操作を設定する)Studio で Update 操作を設定する `electronic`​ テーブルが事前に定義されている場合、テーブルのデータを更新する (たとえば、価格値が 100 を越えているすべての項目の割引を 10 % に設定する) には、次のように ​**Update**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`"UPDATE electronic SET discount = :discount WHERE price > :price"`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のパラメーターに設定します。 ```xml { discount: 10, price: 100 } ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-update-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml :price"]]> ``` ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 ## [](#studio-で-delete-操作を設定する)Studio で Delete 操作を設定する `electronic`​ テーブルが事前に定義されている場合、​`id: 1`​ のレコードを削除するには、次のように ​**Delete**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`DELETE FROM electronic WHERE id = :id`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{id: 1}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-delete-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースのデータの挿入、更新、および削除の例 データベース用 Anypoint Connector (Database Connector) では、データベースのデータを管理できるようにする ​**Insert**​、​**Update**​、​**Delete**​ 操作がサポートされています。 次の例では、​`electronic`​ という名前のテーブルが含まれる ​`Products`​ という名前のデータベーススキーマのデータを挿入、更新、削除します。このテーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#studio-で-insert-操作を設定する)Studio で Insert 操作を設定する テーブル ​`electronic`​ がすでに作成されていて、​`dbConfig`​ という名前の Database Connector 接続設定がある場合、テーブルに新しいレコードを挿入する ​**Insert**​ 操作を設定できます。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```XML INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。 次のスクリーンショットは、Studio の設定を示しています。 ![Insert 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-insert-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` ### [](#insert-操作の-input-parameters-入力パラメーター-項目を設定する)Insert 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する 入力パラメーターの利点を得るには、次のように同等の SQL クエリを構築します。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、次のパラメーターを設定します。 ```xml { name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5 } ``` 次のスクリーンショットは、​**\[Input Parameter (入力パラメーター)\]**​ 項目の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-insert-example-2.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ### [](#insert-操作の-auto-generate-keys-自動生成キー-項目を設定する)Insert 操作の \[Auto Generate Keys (自動生成キー)\] 項目を設定する **Insert**​ 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。 次の例の出力では、行は正常にテーブルに追加されているが、マップ ​`generatedKeys`​ が空であることが示されています。マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 情報をアクティブ化してキーを生成する手順は、次のとおりです。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Auto generate keys (自動生成キー)\]**​ 項目を ​**\[True\]**​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-insert-example-3.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、目的の列名が含まれるリストを設定して、返される列を指定できます。例: 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Auto generate column names (列名を自動生成)\]**​ 項目を \[​`Expression or Bean reference`​ (式または bean 参照)\] に設定して、項目を 1 つの文字列要素が含まれる DataWeave リストに設定します。 3. \[expression (式)\] 項目を ​`['id']`​ に設定して、​`id`​ 列のみが返されるようにします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Auto generate column names (列名を自動生成)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-insert-example-4.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ## [](#studio-で-update-操作を設定する)Studio で Update 操作を設定する `electronic`​ テーブルが事前に定義されている場合、テーブルのデータを更新する (たとえば、価格値が 100 を越えているすべての項目の割引を 10 % に設定する) には、次のように ​**Update**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`"UPDATE electronic SET discount = :discount WHERE price > :price"`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のパラメーターに設定します。 ```xml { discount: 10, price: 100 } ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-update-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml :price"]]> ``` ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 ## [](#studio-で-delete-操作を設定する)Studio で Delete 操作を設定する `electronic`​ テーブルが事前に定義されている場合、​`id: 1`​ のレコードを削除するには、次のように ​**Delete**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`DELETE FROM electronic WHERE id = :id`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{id: 1}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-delete-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースのデータの挿入、更新、および削除の例 データベース用 Anypoint Connector (Database Connector) では、データベースのデータを管理できるようにする ​**Insert**​、​**Update**​、​**Delete**​ 操作がサポートされています。 次の例では、​`electronic`​ という名前のテーブルが含まれる ​`Products`​ という名前のデータベーススキーマのデータを挿入、更新、削除します。このテーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#studio-で-insert-操作を設定する)Studio で Insert 操作を設定する テーブル ​`electronic`​ がすでに作成されていて、​`dbConfig`​ という名前の Database Connector 接続設定がある場合、テーブルに新しいレコードを挿入する ​**Insert**​ 操作を設定できます。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```XML INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。 ![Insert 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-insert-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` ### [](#insert-操作の-input-parameters-入力パラメーター-項目を設定する)Insert 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する 入力パラメーターの利点を得るには、次のように同等の SQL クエリを構築します。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、次のパラメーターを設定します。 ```xml { name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5 } ``` ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-insert-example-2.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ### [](#insert-操作の-auto-generate-keys-自動生成キー-項目を設定する)Insert 操作の \[Auto Generate Keys (自動生成キー)\] 項目を設定する **Insert**​ 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。 次の例の出力では、行は正常にテーブルに追加されているが、マップ ​`generatedKeys`​ が空であることが示されています。マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 情報をアクティブ化してキーを生成する手順は、次のとおりです。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Auto generate keys (自動生成キー)\]**​ 項目を ​**\[True\]**​ に設定します。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-insert-example-3.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、目的の列名が含まれるリストを設定して、返される列を指定できます。例: 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Auto generate column names (列名を自動生成)\]**​ 項目を \[​`Expression or Bean reference`​ (式または bean 参照)\] に設定して、項目を 1 つの文字列要素が含まれる DataWeave リストに設定します。 3. \[expression (式)\] 項目を ​`['id']`​ に設定して、​`id`​ 列のみが返されるようにします。 ![「Auto generate column names (列名を自動生成)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-insert-example-4.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ## [](#studio-で-update-操作を設定する)Studio で Update 操作を設定する `electronic`​ テーブルが事前に定義されている場合、テーブルのデータを更新する (たとえば、価格値が 100 を越えているすべての項目の割引を 10 % に設定する) には、次のように ​**Update**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`"UPDATE electronic SET discount = :discount WHERE price > :price"`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のパラメーターに設定します。 ```xml { discount: 10, price: 100 } ``` ![Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-update-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml :price"]]> ``` ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 ## [](#studio-で-delete-操作を設定する)Studio で Delete 操作を設定する `electronic`​ テーブルが事前に定義されている場合、​`id: 1`​ のレコードを削除するには、次のように ​**Delete**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`DELETE FROM electronic WHERE id = :id`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{id: 1}`​ に設定します。 ![Studio での Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-delete-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#レコード挿入-mule-アプリケーションの例)レコード挿入 Mule アプリケーションの例 次の例は、データベースに個人のレコードを作成するように ​**Insert**​ 操作を設定する方法を示しています。 1. Studio で、HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 2. **\[Path (パス)\]**​ を ​`/person`​ に設定します。 3. **\[Insert\]**​ 操作を ​**\[Listener\]**​ ソースの横にドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ ボックスで、次の SQL テキストを宣言します。 ```xml insert into person (id, name, photo, dob) values (:ID,:NAME,:PHOTO,:DOB); ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、作成する個人レコードのマップのリストを指定します。これには、パラメーター名がキーとして、値がパラメーターとして含まれます。また、すべてのリスト項目は挿入する行を表します。 ```xml {'ID' : message.payload.parts['id'].content , 'NAME': message.payload.parts['name'].content, 'PHOTO' : message.payload.parts['photo'].content, 'DOB' : message.payload.parts['dob'].content} ``` 2. **\[Set Payload\]**​ コンポーネントを ​**\[Insert\]**​ 操作の横にドラッグ横にます。 3. **\[Value (値)\]**​ を ​`Person Created`​ (個人作成済み) に設定します。 4. Mule アプリケーションを保存して実行します。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースのデータの挿入、更新、および削除の例 データベース用 Anypoint Connector (Database Connector) では、データベースのデータを管理できるようにする ​**Insert**​、​**Update**​、​**Delete**​ 操作がサポートされています。 次の例では、​`electronic`​ という名前のテーブルが含まれる ​`Products`​ という名前のデータベーススキーマのデータを挿入、更新、削除します。このテーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#studio-で-insert-操作を設定する)Studio で Insert 操作を設定する テーブル ​`electronic`​ がすでに作成されていて、​`dbConfig`​ という名前の Database Connector 接続設定がある場合、テーブルに新しいレコードを挿入する ​**Insert**​ 操作を設定できます。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```XML INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。 ![Insert 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-insert-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` ### [](#insert-操作の-input-parameters-入力パラメーター-項目を設定する)Insert 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する 入力パラメーターの利点を得るには、次のように同等の SQL クエリを構築します。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、次のパラメーターを設定します。 ```xml { name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5 } ``` ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-insert-example-2.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ### [](#insert-操作の-auto-generate-keys-自動生成キー-項目を設定する)Insert 操作の \[Auto Generate Keys (自動生成キー)\] 項目を設定する **Insert**​ 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。 次の例の出力では、行は正常にテーブルに追加されているが、マップ ​`generatedKeys`​ が空であることが示されています。マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 情報をアクティブ化してキーを生成する手順は、次のとおりです。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Auto generate keys (自動生成キー)\]**​ 項目を ​**\[True\]**​ に設定します。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-insert-example-3.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、目的の列名が含まれるリストを設定して、返される列を指定できます。例: 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Auto generate column names (列名を自動生成)\]**​ 項目を \[​`Expression or Bean reference`​ (式または bean 参照)\] に設定して、項目を 1 つの文字列要素が含まれる DataWeave リストに設定します。 3. \[expression (式)\] 項目を ​`['id']`​ に設定して、​`id`​ 列のみが返されるようにします。 ![「Auto generate column names (列名を自動生成)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-insert-example-4.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ## [](#studio-で-update-操作を設定する)Studio で Update 操作を設定する `electronic`​ テーブルが事前に定義されている場合、テーブルのデータを更新する (たとえば、価格値が 100 を越えているすべての項目の割引を 10 % に設定する) には、次のように ​**Update**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`"UPDATE electronic SET discount = :discount WHERE price > :price"`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のパラメーターに設定します。 ```xml { discount: 10, price: 100 } ``` ![Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-update-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml :price"]]> ``` ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 ## [](#studio-で-delete-操作を設定する)Studio で Delete 操作を設定する `electronic`​ テーブルが事前に定義されている場合、​`id: 1`​ のレコードを削除するには、次のように ​**Delete**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`DELETE FROM electronic WHERE id = :id`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{id: 1}`​ に設定します。 ![Studio での Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-delete-example-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#レコード挿入-mule-アプリケーションの例)レコード挿入 Mule アプリケーションの例 次の例は、データベースに個人のレコードを作成するように ​**Insert**​ 操作を設定する方法を示しています。 1. Studio で、HTTP ​**Listener**​ ソースを Studio キャンバスにドラッグします。 2. **\[Path (パス)\]**​ を ​`/person`​ に設定します。 3. **\[Insert\]**​ 操作を ​**\[Listener\]**​ ソースの横にドラッグします。 4. **\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 5. **\[SQL Query Text (SQL クエリテキスト)\]**​ ボックスで、次の SQL テキストを宣言します。 ```xml insert into person (id, name, photo, dob) values (:ID,:NAME,:PHOTO,:DOB); ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、作成する個人レコードのマップのリストを指定します。これには、パラメーター名がキーとして、値がパラメーターとして含まれます。また、すべてのリスト項目は挿入する行を表します。 ```xml {'ID' : message.payload.parts['id'].content , 'NAME': message.payload.parts['name'].content, 'PHOTO' : message.payload.parts['photo'].content, 'DOB' : message.payload.parts['dob'].content} ``` 2. **\[Set Payload\]**​ コンポーネントを ​**\[Insert\]**​ 操作の横にドラッグ横にます。 3. **\[Value (値)\]**​ を ​`Person Created`​ (個人作成済み) に設定します。 4. Mule アプリケーションを保存して実行します。 **設定 XML**​ エディターでは、設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースのデータの挿入、更新、および削除の例 データベース用 Anypoint Connector (Database Connector) では、データベースのデータを管理できるようにする ​**Insert**​、​**Update**​、​**Delete**​ 操作がサポートされています。 次の例では、​`electronic`​ という名前のテーブルが含まれる ​`Products`​ という名前のデータベーススキーマのデータを挿入、更新、削除します。このテーブルには、​`id`​、​`name`​、​`description`​、​`price`​、​`discount`​ という列が含まれます。 次の SQL ステートメントでは、このテーブルを作成します。 ```sql CREATE TABLE electronic( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), description VARCHAR(255), price SMALLINT, discount TINYINT ) ``` ## [](#studio-で-insert-操作を設定する)Studio で Insert 操作を設定する テーブル ​`electronic`​ がすでに作成されていて、​`dbConfig`​ という名前の Database Connector 接続設定がある場合、テーブルに新しいレコードを挿入する ​**Insert**​ 操作を設定できます。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```XML INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` `id`​ パラメーターは、データベースによって自動的に生成される自動増分キーであるため、クエリに渡されません。 次のスクリーンショットは、Studio の設定を示しています。 ![Insert 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-insert-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES ('Coffee Machine', 'Model: XYZ99. Uses small size capsules.', 120, 5) ``` ### [](#insert-操作の-input-parameters-入力パラメーター-項目を設定する)Insert 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する 入力パラメーターの利点を得るには、次のように同等の SQL クエリを構築します。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. コネクタ設定画面で、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。例: ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) ``` 1. **\[Input Parameters (入力パラメーター)\]**​ 項目で、次のパラメーターを設定します。 ```xml { name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5 } ``` 次のスクリーンショットは、​**\[Input Parameter (入力パラメーター)\]**​ 項目の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-insert-example-2.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml INSERT INTO electronic(name, description, price, discount) VALUES (:name, :description, :price, :discount) #[{ name: 'Coffee Machine', description: 'Model:XYZ99. Uses small size capsules.', price: 120, discount: 5}] ``` ### [](#insert-操作の-auto-generate-keys-自動生成キー-項目を設定する)Insert 操作の \[Auto Generate Keys (自動生成キー)\] 項目を設定する **Insert**​ 操作は、2 つの項目 (クエリの影響を受けた行数を示す整数 ​`affectedRows`​ と、自動生成されたキーが含まれるマップ ​`generatedKeys`​) が含まれる ​`Statement Result`​ オブジェクトを出力します。 次の例の出力では、行は正常にテーブルに追加されているが、マップ ​`generatedKeys`​ が空であることが示されています。マップが空になるのは、オーバーヘッドを回避するためにこの情報がデフォルトで無効になっているためです。 ```json { "affectedRows": 1, "generatedKeys": { } } ``` 情報をアクティブ化してキーを生成する手順は、次のとおりです。 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで ​**\[Auto generate keys (自動生成キー)\]**​ 項目を ​**\[True\]**​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![「Input Parameter (入力パラメーター)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-insert-example-3.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ステートメントで影響を受けた行ごとに複数のキーが生成される場合、目的の列名が含まれるリストを設定して、返される列を指定できます。例: 1. Studio のフローで、​**\[Insert\]**​ 操作を選択します。 2. **\[Advanced (詳細)\]**​ タブで、​**\[Auto generate column names (列名を自動生成)\]**​ 項目を \[​`Expression or Bean reference`​ (式または bean 参照)\] に設定して、項目を 1 つの文字列要素が含まれる DataWeave リストに設定します。 3. \[expression (式)\] 項目を ​`['id']`​ に設定して、​`id`​ 列のみが返されるようにします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Auto generate column names (列名を自動生成)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-insert-example-4.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml ... ``` ## [](#studio-で-update-操作を設定する)Studio で Update 操作を設定する `electronic`​ テーブルが事前に定義されている場合、テーブルのデータを更新する (たとえば、価格値が 100 を越えているすべての項目の割引を 10 % に設定する) には、次のように ​**Update**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`"UPDATE electronic SET discount = :discount WHERE price > :price"`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を次のパラメーターに設定します。 ```xml { discount: 10, price: 100 } ``` 次のスクリーンショットは、Studio の設定を示しています。 ![Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-update-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml :price"]]> ``` ``​ ラッパーにより、クエリで ​`>`​ や ​`"`​ などの特殊文字を使用できます。 ラッパーがない場合、これらの文字の XML でエスケープされたバージョン (​`>`​ や ​`"`​ など) を使用する必要があります。 ## [](#studio-で-delete-操作を設定する)Studio で Delete 操作を設定する `electronic`​ テーブルが事前に定義されている場合、​`id: 1`​ のレコードを削除するには、次のように ​**Delete**​ 操作を設定します。 1. Studio のフローで、​**\[Update\]**​ 操作を選択します。 2. コネクタ設定画面で、​`DELETE FROM electronic WHERE id = :id`​ のように、実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します。 3. **\[Input parameters (入力パラメーター)\]**​ 項目を ​`{id: 1}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Update 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-delete-example-1.png) XML エディターでは、​``​ 設定は次のように記述されます。 ```xml DELETE FROM electronic WHERE id = :id #[{ id: 1 }] ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Select**​ 操作では、データベースのデータを選択できます。次の例は、Studio で ​**\[Input Parameters (入力パラメーター)\]**​、​**\[Fetch size (フェッチサイズ)\]**​、​**\[Max rows (最大行数)\]**​、​**\[Query timeout (クエリタイムアウト)\]**​ 項目を設定して操作を設定するときに役立ちます。また、動的クエリを設定する方法についても記載されています。 ## [](#studio-で-select-操作を設定する)Studio で Select 操作を設定する Studio で ​**Select**​ 操作を追加および設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Select\]**​ 操作を選択します。 2. **\[Select\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `SELECT * FROM PLANET WHERE name = :name`​)。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Select 操作の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-select-operation-1.png) Figure 1. Select 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name ``` ## [](#select-操作の-input-parameters-入力パラメーター-項目を設定する)Select 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する データベースクエリを保護するには、データベースで実行する SQL ステートメントに変数値を追加して、​**Select**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定します。Select 操作の主な目標は、SQL クエリを提供し、パラメーターに DataWeave を使用することです。 指定するパラメーターは、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップです。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 入力パラメーターを使用して SQL ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定すると、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションのパフォーマンスが向上します。 セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力パラメーターと出力パラメーターには DataSense を使用できます。Database Connector はクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 次の例では、入力パラメーターをキー-値ペアとして指定します。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM PLANET WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 このキーでは、コロン文字 (​`:`​) を使用して、名前によりパラメーター値を参照します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Input parameters (入力パラメーター)\] 項目の設定](_images/database-select-operation-2.png) Figure 2. \[Input Parameters (入力パラメーター)\] の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ```

Database Connector 1.4.0 では、SQL クエリでコロンをエスケープできます。SQL クエリでコロン文字 (​:​) を使用する場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

Database Connector 1.8.0 以降では、ダブルコロン (::) 表現を使用して、各コロンをエスケープせず SQL キャスト PostgreSQL および Snowflake 構文を受け入れることができます。エスケープされたコロンの動作に影響することもありません。例:

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

## [](#select-操作の動的クエリを設定する)Select 操作の動的クエリを設定する `WHERE`​ 句だけでなくクエリ自体の一部をパラメーター化する必要がある場合 (条件に依存するテーブルを比較するクエリや、プロジェクトテーブル列を変更する必要がある複雑なクエリなど)、動的クエリを設定できます。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ が含まれる完全な式を使用して動的クエリを設定します。一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して引き続き ​`WHERE`​ 条件を定義します (この例では ​`WHERE name = :name`​)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM $(vars.table) WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での動的クエリの設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-select-operation-3.png) Figure 3. 動的クエリの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 入力パラメーターは ​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave 補間演算子を使用します。 設計時に式の値を使用できない場合があるため、動的クエリを使用すると、DataWeave 評価エラーがスローされたり、​**Select**​ 操作の出力メタデータ (DataSense) に影響したりすることがあります。 値をデフォルトにする (前述の不都合を回避する) には、次のように default 修飾子を使用できます。 ```xml #["SELECT * FROM $(vars.table default ASTEROIDS) WHERE name = :name"] #[{'name' : payload}] ``` ### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10,000 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、Database Connector は一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。 これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。 ## [](#select-操作の-fetch-size-フェッチサイズ-と-max-rows-最大行数-項目を設定する)Select 操作の \[Fetch Size (フェッチサイズ)\] と \[Max Rows (最大行数)\] 項目を設定する Mule Runtime Engine (Mule) では、Database Connector でストリーミングを管理できますが、データの大きなチャンクをデータベースから Mule に移動することをお勧めできない場合もあります。ストリーミングを使用しても、単純な SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。結果を制限するには、​**\[Fetch size (フェッチサイズ)\]**​ 項目と ​**\[Max rows (最大行数)\]**​ 項目を設定します。 次の例では、​**Select**​ 操作でこれらの項目を設定します。この構文は、フェッチできる合計行数は 1000 (​**\[Max rows (最大行数)\]**​ 値) 以下、同時にフェッチできる行数は 200 (​**\[Fetch size (フェッチサイズ)\]**​ 値) 以下であることを Database Connector に指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​**\[Fetch size (フェッチサイズ)\]**​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。 この組み合わせにより、取得される情報の総量が制限され (​**\[Max rows (最大行数)\]**​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​**\[Fetch size (フェッチサイズ)\]**​ 値)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブをクリックし、​**\[Fetch size (フェッチサイズ)\]**​ 項目を ​`200`​、​**\[Max rows (最大行数)\]**​ 項目を ​`1000`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定](_images/database-select-operation-4.png) Figure 4. \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定 XML エディターでは、​`fetchSize`​ および ​`maxRows`​ 設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#select-操作の-query-timeout-クエリタイムアウト-項目を設定する)Select 操作の \[Query Timeout (クエリタイムアウト)\] 項目を設定する 多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 クエリの実行時にタイムアウトしないようにするには、​**\[Query timeout (クエリタイムアウト)\]**​ 項目と ​**\[Query time unit (クエリ時間単位)\]**​ 項目を設定します。すべての Database Connector 操作でタイムアウトの設定がサポートされています。 次の例は、タイムアウトを設定する方法を示しています。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を ​**\[Query timeout (クエリタイムアウト)\]**​ 項目に設定します。例: `0`​。 4. **\[Query timeout (クエリタイムアウト)\]**​ に使用できる時間単位を ​**\[Query timeout unit (クエリタイムアウト単位)\]**​ 項目に設定します。例: `SECONDS`​。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Query timeout (クエリタイムアウト)\] 項目の設定](_images/database-select-operation-5.png) Figure 5. \[Query timeout (クエリタイムアウト)\] の設定 XML エディターでは、​`queryTimeout`​ および ​`SECONDS`​ 設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Select**​ 操作では、データベースのデータを選択できます。次の例は、Studio で ​**\[Input Parameters (入力パラメーター)\]**​、​**\[Fetch size (フェッチサイズ)\]**​、​**\[Max rows (最大行数)\]**​、​**\[Query timeout (クエリタイムアウト)\]**​ 項目を設定して操作を設定するときに役立ちます。また、動的クエリを設定する方法についても記載されています。 ## [](#studio-で-select-操作を設定する)Studio で Select 操作を設定する Studio で ​**Select**​ 操作を追加および設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Select\]**​ 操作を選択します。 2. **\[Select\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `SELECT * FROM PLANET WHERE name = :name`​)。 ![Studio での Select 操作の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-select-operation-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name ``` ## [](#select-操作の-input-parameters-入力パラメーター-項目を設定する)Select 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する データベースクエリを保護するには、データベースで実行する SQL ステートメントに変数値を追加して、​**Select**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定します。Select 操作の主な目標は、SQL クエリを提供し、パラメーターに DataWeave を使用することです。 指定するパラメーターは、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップです。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 入力パラメーターを使用して SQL ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定すると、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションのパフォーマンスが向上します。 セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力パラメーターと出力パラメーターには DataSense を使用できます。Database Connector はクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 次の例では、入力パラメーターをキー-値ペアとして指定します。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`SELECT * FROM PLANET WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ を ​`{'name' : payload}`​ に設定します。 このキーでは、コロン文字 (​`:`​) を使用して、名前によりパラメーター値を参照します。 ![Studio での \[Input parameters (入力パラメーター)\] 項目の設定](_images/database-select-operation-2.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ```

Database Connector 1.4.0 では、SQL クエリでコロンをエスケープできます。SQL クエリでコロン文字 (​:​) を使用する場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

Database Connector 1.8.0 以降では、ダブルコロン (::) 表現を使用して、各コロンをエスケープせず SQL キャスト PostgreSQL および Snowflake 構文を受け入れることができます。エスケープされたコロンの動作に影響することもありません。例:

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

## [](#select-操作の動的クエリを設定する)Select 操作の動的クエリを設定する `WHERE`​ 句だけでなくクエリ自体の一部をパラメーター化する必要がある場合 (条件に依存するテーブルを比較するクエリや、プロジェクトテーブル列を変更する必要がある複雑なクエリなど)、動的クエリを設定できます。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ が含まれる完全な式を使用して動的クエリを設定します。一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して引き続き ​`WHERE`​ 条件を定義します (この例では ​`WHERE name = :name`​)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM $(vars.table) WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での動的クエリの設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-select-operation-3.png) Figure 1. 動的クエリの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 入力パラメーターは ​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave 補間演算子を使用します。 設計時に式の値を使用できない場合があるため、動的クエリを使用すると、DataWeave 評価エラーがスローされたり、​**Select**​ 操作の出力メタデータ (DataSense) に影響したりすることがあります。 値をデフォルトにして、前述の不都合を回避するには、次のように default 修飾子を使用します。 ```xml #["SELECT * FROM $(vars.table default ASTEROIDS) WHERE name = :name"] #[{'name' : payload}] ``` ### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10,000 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、Database Connector は一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。 これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。 ## [](#select-操作の-fetch-size-フェッチサイズ-と-max-rows-最大行数-項目を設定する)Select 操作の \[Fetch Size (フェッチサイズ)\] と \[Max Rows (最大行数)\] 項目を設定する Mule Runtime Engine (Mule) では、Database Connector でストリーミングを管理できますが、データの大きなチャンクをデータベースから Mule に移動することをお勧めできない場合もあります。ストリーミングを使用しても、単純な SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。結果を制限するには、​**\[Fetch size (フェッチサイズ)\]**​ 項目と ​**\[Max rows (最大行数)\]**​ 項目を設定します。 次の例では、​**Select**​ 操作でこれらの項目を設定します。この構文は、フェッチできる合計行数は 1000 (​**\[Max rows (最大行数)\]**​ 値) 以下、同時にフェッチできる行数は 200 (​**\[Fetch size (フェッチサイズ)\]**​ 値) 以下であることを Database Connector に指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​**\[Fetch size (フェッチサイズ)\]**​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。 この組み合わせにより、取得される情報の総量が制限され (​**\[Max rows (最大行数)\]**​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​**\[Fetch size (フェッチサイズ)\]**​ 値)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ をクリックし、​**\[Fetch size (フェッチサイズ)\]**​ を ​`200`​、​**\[Max rows (最大行数)\]**​ を ​`1000`​ に設定します。 ![Studio での \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定](_images/database-select-operation-4.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`fetchSize`​ および ​`maxRows`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#select-操作の-query-timeout-クエリタイムアウト-項目を設定する)Select 操作の \[Query Timeout (クエリタイムアウト)\] 項目を設定する 多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 クエリの実行時にタイムアウトしないようにするには、​**\[Query timeout (クエリタイムアウト)\]**​ 項目と ​**\[Query time unit (クエリ時間単位)\]**​ 項目を設定します。すべての Database Connector 操作でタイムアウトの設定がサポートされています。 次の例は、タイムアウトを設定する方法を示しています。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を ​**\[Query timeout (クエリタイムアウト)\]**​ に設定します。例: `0`​。 4. **\[Query timeout (クエリタイムアウト)\]**​ に使用できる時間単位を ​**\[Query timeout unit (クエリタイムアウト単位)\]**​ に設定します。例: `SECONDS`​。 ![Studio での \[Query timeout (クエリタイムアウト)\] 項目の設定](_images/database-select-operation-5.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`queryTimeout`​ および ​`SECONDS`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Select**​ 操作では、データベースのデータを選択できます。次の例は、Studio で ​**\[Input Parameters (入力パラメーター)\]**​、​**\[Fetch size (フェッチサイズ)\]**​、​**\[Max rows (最大行数)\]**​、​**\[Query timeout (クエリタイムアウト)\]**​ 項目を設定して操作を設定するときに役立ちます。また、動的クエリを設定する方法についても記載されています。 ## [](#studio-で-select-操作を設定する)Studio で Select 操作を設定する Studio で ​**Select**​ 操作を追加および設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Select\]**​ 操作を選択します。 2. **\[Select\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `SELECT * FROM PLANET WHERE name = :name`​)。 ![Studio での Select 操作の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-select-operation-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name ``` ## [](#select-操作の-input-parameters-入力パラメーター-項目を設定する)Select 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する データベースクエリを保護するには、データベースで実行する SQL ステートメントに変数値を追加して、​**Select**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定します。Select 操作の主な目標は、SQL クエリを提供し、パラメーターに DataWeave を使用することです。 指定するパラメーターは、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップです。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 入力パラメーターを使用して SQL ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定すると、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションのパフォーマンスが向上します。 セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力パラメーターと出力パラメーターには DataSense を使用できます。Database Connector はクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 次の例では、入力パラメーターをキー-値ペアとして指定します。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`SELECT * FROM PLANET WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ を ​`{'name' : payload}`​ に設定します。 このキーでは、コロン文字 (​`:`​) を使用して、名前によりパラメーター値を参照します。 ![Studio での \[Input parameters (入力パラメーター)\] 項目の設定](_images/database-select-operation-2.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ```

Database Connector 1.4.0 では、SQL クエリでコロンをエスケープできます。SQL クエリでコロン文字 (​:​) を使用する場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

Database Connector 1.8.0 以降では、ダブルコロン (::) 表現を使用して、各コロンをエスケープせず SQL キャスト PostgreSQL および Snowflake 構文を受け入れることができます。エスケープされたコロンの動作に影響することもありません。例:

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

## [](#select-操作の動的クエリを設定する)Select 操作の動的クエリを設定する `WHERE`​ 句だけでなくクエリ自体の一部をパラメーター化する必要がある場合 (条件に依存するテーブルを比較するクエリや、プロジェクトテーブル列を変更する必要がある複雑なクエリなど)、動的クエリを設定できます。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ が含まれる完全な式を使用して動的クエリを設定します。一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して引き続き ​`WHERE`​ 条件を定義します (この例では ​`WHERE name = :name`​)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM $(vars.table) WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での動的クエリの設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-select-operation-3.png) Figure 1. 動的クエリの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 入力パラメーターは ​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave 補間演算子を使用します。 設計時に式の値を使用できない場合があるため、動的クエリを使用すると、DataWeave 評価エラーがスローされたり、​**Select**​ 操作の出力メタデータ (DataSense) に影響したりすることがあります。 値をデフォルトにして、前述の不都合を回避するには、次のように default 修飾子を使用します。 ```xml #["SELECT * FROM $(vars.table default ASTEROIDS) WHERE name = :name"] #[{'name' : payload}] ``` ### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10,000 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、Database Connector は一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。 これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。 ## [](#select-操作の-fetch-size-フェッチサイズ-と-max-rows-最大行数-項目を設定する)Select 操作の \[Fetch Size (フェッチサイズ)\] と \[Max Rows (最大行数)\] 項目を設定する Mule Runtime Engine (Mule) では、Database Connector でストリーミングを管理できますが、データの大きなチャンクをデータベースから Mule に移動することをお勧めできない場合もあります。ストリーミングを使用しても、単純な SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。結果を制限するには、​**\[Fetch size (フェッチサイズ)\]**​ 項目と ​**\[Max rows (最大行数)\]**​ 項目を設定します。 次の例では、​**Select**​ 操作でこれらの項目を設定します。この構文は、フェッチできる合計行数は 1000 (​**\[Max rows (最大行数)\]**​ 値) 以下、同時にフェッチできる行数は 200 (​**\[Fetch size (フェッチサイズ)\]**​ 値) 以下であることを Database Connector に指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​**\[Fetch size (フェッチサイズ)\]**​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。 この組み合わせにより、取得される情報の総量が制限され (​**\[Max rows (最大行数)\]**​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​**\[Fetch size (フェッチサイズ)\]**​ 値)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ をクリックし、​**\[Fetch size (フェッチサイズ)\]**​ を ​`200`​、​**\[Max rows (最大行数)\]**​ を ​`1000`​ に設定します。 ![Studio での \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定](_images/database-select-operation-4.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`fetchSize`​ および ​`maxRows`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#select-操作の-query-timeout-クエリタイムアウト-項目を設定する)Select 操作の \[Query Timeout (クエリタイムアウト)\] 項目を設定する 多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 クエリの実行時にタイムアウトしないようにするには、​**\[Query timeout (クエリタイムアウト)\]**​ 項目と ​**\[Query time unit (クエリ時間単位)\]**​ 項目を設定します。すべての Database Connector 操作でタイムアウトの設定がサポートされています。 次の例は、タイムアウトを設定する方法を示しています。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を ​**\[Query timeout (クエリタイムアウト)\]**​ に設定します。例: `0`​。 4. **\[Query timeout (クエリタイムアウト)\]**​ に使用できる時間単位を ​**\[Query timeout unit (クエリタイムアウト単位)\]**​ に設定します。例: `SECONDS`​。 ![Studio での \[Query timeout (クエリタイムアウト)\] 項目の設定](_images/database-select-operation-5.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`queryTimeout`​ および ​`SECONDS`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Select**​ 操作では、データベースのデータを選択できます。次の例は、Studio で ​**\[Input Parameters (入力パラメーター)\]**​、​**\[Fetch size (フェッチサイズ)\]**​、​**\[Max rows (最大行数)\]**​、​**\[Query timeout (クエリタイムアウト)\]**​ 項目を設定して操作を設定するときに役立ちます。また、動的クエリを設定する方法についても記載されています。 ## [](#studio-で-select-操作を設定する)Studio で Select 操作を設定する Studio で ​**Select**​ 操作を追加および設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Select\]**​ 操作を選択します。 2. **\[Select\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `SELECT * FROM PLANET WHERE name = :name`​)。 ![Studio での Select 操作の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-select-operation-1.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name ``` ## [](#select-操作の-input-parameters-入力パラメーター-項目を設定する)Select 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する データベースクエリを保護するには、データベースで実行する SQL ステートメントに変数値を追加して、​**Select**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定します。Select 操作の主な目標は、SQL クエリを提供し、パラメーターに DataWeave を使用することです。 指定するパラメーターは、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップです。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 入力パラメーターを使用して SQL ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定すると、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションのパフォーマンスが向上します。 セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力パラメーターと出力パラメーターには DataSense を使用できます。Database Connector はクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 次の例では、入力パラメーターをキー-値ペアとして指定します。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`SELECT * FROM PLANET WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ を ​`{'name' : payload}`​ に設定します。 このキーでは、コロン文字 (​`:`​) を使用して、名前によりパラメーター値を参照します。 ![Studio での \[Input parameters (入力パラメーター)\] 項目の設定](_images/database-select-operation-2.png) **設定 XML**​ エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ```

Database Connector 1.4.0 では、SQL クエリでコロンをエスケープできます。SQL クエリでコロン文字 (​:​) を使用する場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

Database Connector 1.8.0 以降では、ダブルコロン (::) 表現を使用して、各コロンをエスケープせず SQL キャスト PostgreSQL および Snowflake 構文を受け入れることができます。エスケープされたコロンの動作に影響することもありません。例:

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

## [](#select-操作の動的クエリを設定する)Select 操作の動的クエリを設定する `WHERE`​ 句だけでなくクエリ自体の一部をパラメーター化する必要がある場合 (条件に依存するテーブルを比較するクエリや、プロジェクトテーブル列を変更する必要がある複雑なクエリなど)、動的クエリを設定できます。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ が含まれる完全な式を使用して動的クエリを設定します。一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して引き続き ​`WHERE`​ 条件を定義します (この例では ​`WHERE name = :name`​)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM $(vars.table) WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での動的クエリの設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-select-operation-3.png) Figure 1. 動的クエリの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 入力パラメーターは ​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave 補間演算子を使用します。 設計時に式の値を使用できない場合があるため、動的クエリを使用すると、DataWeave 評価エラーがスローされたり、​**Select**​ 操作の出力メタデータ (DataSense) に影響したりすることがあります。 値をデフォルトにして、前述の不都合を回避するには、次のように default 修飾子を使用します。 ```xml #["SELECT * FROM $(vars.table default ASTEROIDS) WHERE name = :name"] #[{'name' : payload}] ``` ### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10,000 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、Database Connector は一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。 ## [](#select-操作の-fetch-size-フェッチサイズ-と-max-rows-最大行数-項目を設定する)Select 操作の \[Fetch Size (フェッチサイズ)\] と \[Max Rows (最大行数)\] 項目を設定する Mule Runtime Engine (Mule) では、Database Connector でストリーミングを管理できますが、データの大きなチャンクをデータベースから Mule に移動することをお勧めできない場合もあります。ストリーミングを使用しても、単純な SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。結果を制限するには、​**\[Fetch size (フェッチサイズ)\]**​ 項目と ​**\[Max rows (最大行数)\]**​ 項目を設定します。 次の例では、​**Select**​ 操作でこれらの項目を設定します。この構文は、フェッチできる合計行数は 1000 (​**\[Max rows (最大行数)\]**​ 値) 以下、同時にフェッチできる行数は 200 (​**\[Fetch size (フェッチサイズ)\]**​ 値) 以下であることを Database Connector に指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​**\[Fetch size (フェッチサイズ)\]**​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。この組み合わせにより、取得される情報の総量が制限され (​**\[Max rows (最大行数)\]**​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​**\[Fetch size (フェッチサイズ)\]**​ 値)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ をクリックし、​**\[Fetch size (フェッチサイズ)\]**​ を ​`200`​、​**\[Max rows (最大行数)\]**​ を ​`1000`​ に設定します。 ![Studio での \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定](_images/database-select-operation-4.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`fetchSize`​ および ​`maxRows`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#select-操作の-query-timeout-クエリタイムアウト-項目を設定する)Select 操作の \[Query Timeout (クエリタイムアウト)\] 項目を設定する 多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 クエリの実行時にタイムアウトしないようにするには、​**\[Query timeout (クエリタイムアウト)\]**​ 項目と ​**\[Query time unit (クエリ時間単位)\]**​ 項目を設定します。すべての Database Connector 操作でタイムアウトの設定がサポートされています。 次の例は、タイムアウトを設定する方法を示しています。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を ​**\[Query timeout (クエリタイムアウト)\]**​ に設定します。例: `0`​。 4. **\[Query timeout (クエリタイムアウト)\]**​ に使用できる時間単位を ​**\[Query timeout unit (クエリタイムアウト単位)\]**​ に設定します。例: `SECONDS`​。 ![Studio での \[Query timeout (クエリタイムアウト)\] 項目の設定](_images/database-select-operation-5.png) **\[Configuration XML (設定 XML)\]**​ エディターで、​`queryTimeout`​ および ​`SECONDS`​ の設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベースの照会の例 データベース用 Anypoint Connector (Database Connector) の ​**Select**​ 操作では、データベースのデータを選択できます。次の例は、Studio で ​**\[Input Parameters (入力パラメーター)\]**​、​**\[Fetch size (フェッチサイズ)\]**​、​**\[Max rows (最大行数)\]**​、​**\[Query timeout (クエリタイムアウト)\]**​ 項目を設定して操作を設定するときに役立ちます。また、動的クエリを設定する方法についても記載されています。 ## [](#studio-で-select-操作を設定する)Studio で Select 操作を設定する Studio で ​**Select**​ 操作を追加および設定する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで「​`database`​」を検索し、​**\[Select\]**​ 操作を選択します。 2. **\[Select\]**​ 操作を Studio キャンバスにドラッグします。 3. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 4. データベース接続情報を指定し、​**\[OK\]**​ をクリックします。 5. 実行する SQL クエリを ​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に設定します (例: `SELECT * FROM PLANET WHERE name = :name`​)。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での Select 操作の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-select-operation-1.png) Figure 1. Select 操作の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name ``` ## [](#select-操作の-input-parameters-入力パラメーター-項目を設定する)Select 操作の \[Input Parameters (入力パラメーター)\] 項目を設定する データベースクエリを保護するには、データベースで実行する SQL ステートメントに変数値を追加して、​**Select**​ 操作の ​**\[Input parameters (入力パラメーター)\]**​ 項目を設定します。Select 操作の主な目標は、SQL クエリを提供し、パラメーターに DataWeave を使用することです。 指定するパラメーターは、JDBC プリペアードステートメントに設定する入力パラメーターの名前をキーとするマップです。SQL テキスト内でコロンプレフィックスを使用して各パラメーターを参照します (例: `where id = :myParamName`​)。マップの値には、各パラメーターの実際の割り当てが含まれます。 入力パラメーターを使用して SQL ​`SELECT`​ ステートメントの ​`WHERE`​ 句を設定すると、クエリが SQL インジェクション攻撃の影響を受けなくなり、他の方法では不可能な最適化を実行でき、アプリケーションのパフォーマンスが向上します。 セキュリティ上の理由により、​`SELECT * FROM PLANET WHERE name = #[payload] `​ は直接記述しないでください。 操作の入力パラメーターと出力パラメーターには DataSense を使用できます。Database Connector はクエリを分析し、SQL ステートメントの射影セクションを分析することで、クエリの出力構造を自動的に計算します。同時に、​`WHERE`​ 句の条件をテーブル構造と比較して、DataSense 入力も生成します。これは、入力パラメーターを生成する DataWeave スクリプトをビルドするのに役立ちます。 次の例では、入力パラメーターをキー-値ペアとして指定します。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM PLANET WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 このキーでは、コロン文字 (​`:`​) を使用して、名前によりパラメーター値を参照します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Input parameters (入力パラメーター)\] 項目の設定](_images/database-select-operation-2.png) Figure 2. \[Input Parameters (入力パラメーター)\] の設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml SELECT * FROM PLANET WHERE name = :name #[{'name' : payload}] ```

Database Connector 1.4.0 では、SQL クエリでコロンをエスケープできます。SQL クエリでコロン文字 (​:​) を使用する場合、コロン文字の前にバックスラッシュを置くことでコロン文字をエスケープできます。これは、PostgreSQL 種別のキャストを使用する場合に役立ちます。この場合、キャスト先の種別の前に 2 つのコロンが必要です。例:

<db:sql>SELECT price\:\:float8 FROM PRODUCT</db:sql>

Database Connector 1.8.0 以降では、ダブルコロン (::) 表現を使用して、各コロンをエスケープせず SQL キャスト PostgreSQL および Snowflake 構文を受け入れることができます。エスケープされたコロンの動作に影響することもありません。例:

<db:sql>SELECT MAX(modified_date)::DATE FROM sales</db:sql>

## [](#select-操作の動的クエリを設定する)Select 操作の動的クエリを設定する `WHERE`​ 句だけでなくクエリ自体の一部をパラメーター化する必要がある場合 (条件に依存するテーブルを比較するクエリや、プロジェクトテーブル列を変更する必要がある複雑なクエリなど)、動的クエリを設定できます。 次の例では、テーブルが変数に依存することを記述する文字列 ​`$(vars.table)`​ が含まれる完全な式を使用して動的クエリを設定します。一部のクエリテキストは動的 (​`"SELECT * FROM $(vars.table)`​) ですが、​`WHERE`​ 句では、入力パラメーターを使用して引き続き ​`WHERE`​ 条件を定義します (この例では ​`WHERE name = :name`​)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`SELECT * FROM $(vars.table) WHERE name = :name`​ に設定します。 3. **\[Input Parameters (入力パラメーター)\]**​ 項目を ​`{'name' : payload}`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での動的クエリの設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-select-operation-3.png) Figure 3. 動的クエリの設定 XML エディターでは、​``​ 設定は次のように記述されます。 ```xml #["SELECT * FROM $(vars.table) WHERE name = :name"] #[{'name' : payload}] ``` 入力パラメーターは ​`WHERE`​ 句のパラメーターにのみ適用できます。クエリの別の部分を変更するには、DataWeave 補間演算子を使用します。 設計時に式の値を使用できない場合があるため、動的クエリを使用すると、DataWeave 評価エラーがスローされたり、​**Select**​ 操作の出力メタデータ (DataSense) に影響したりすることがあります。 値をデフォルトにして、前述の不都合を回避するには、次のように default 修飾子を使用します。 ```xml #["SELECT * FROM $(vars.table default ASTEROIDS) WHERE name = :name"] #[{'name' : payload}] ``` ### [](#大量の結果のストリーミング)大量の結果のストリーミング インテグレーションのユースケースなど、多くのレコードを返すクエリでストリーミングを使用します。Mule 4 では、ストリーミングは透過的であり、常に有効になっています。 たとえば、10,000 行を返すクエリを送信した場合、それらすべての行を一度にフェッチしようとすると、ネットワークから大量の取り込みを行うため、パフォーマンスが低下し、すべての情報を RAM に読み込む必要があるため、メモリ不足になるリスクがあります。 ストリーミングでは、Database Connector は一度にクエリの一部のみをフェッチおよび処理するため、ネットワークとメモリの負荷が軽減されます。 これは、コネクタが 10K 行を一度にフェッチしないことを意味します。代わりに、コネクタは小さなチャンクをフェッチし、そのチャンクがコンシュームされたら残りをフェッチします。 反復可能なストリームメカニズムを使用することもできます。これにより、DataWeave や他のコンポーネントで同じストリームを何度も処理できます。また、並列処理も可能です。 ## [](#select-操作の-fetch-size-フェッチサイズ-と-max-rows-最大行数-項目を設定する)Select 操作の \[Fetch Size (フェッチサイズ)\] と \[Max Rows (最大行数)\] 項目を設定する Mule Runtime Engine (Mule) では、Database Connector でストリーミングを管理できますが、データの大きなチャンクをデータベースから Mule に移動することをお勧めできない場合もあります。ストリーミングを使用しても、単純な SQL クエリで、各行に大量の情報を含む多くの行が返される可能性はあります。結果を制限するには、​**\[Fetch size (フェッチサイズ)\]**​ 項目と ​**\[Max rows (最大行数)\]**​ 項目を設定します。 次の例では、​**Select**​ 操作でこれらの項目を設定します。この構文は、フェッチできる合計行数は 1000 (​**\[Max rows (最大行数)\]**​ 値) 以下、同時にフェッチできる行数は 200 (​**\[Fetch size (フェッチサイズ)\]**​ 値) 以下であることを Database Connector に指示します。これにより、ネットワークとメモリの負荷が大幅に軽減されます。​**\[Fetch size (フェッチサイズ)\]**​ 値は JDBC ドライバープロバイダーごとに異なって適用され、多くの場合、デフォルトで ​`10`​ に設定されます。 この組み合わせにより、取得される情報の総量が制限され (​**\[Max rows (最大行数)\]**​ 値)、ネットワーク経由でデータベースから小さいチャンクのデータが返されることが保証されます (​**\[Fetch size (フェッチサイズ)\]**​ 値)。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブをクリックし、​**\[Fetch size (フェッチサイズ)\]**​ 項目を ​`200`​、​**\[Max rows (最大行数)\]**​ 項目を ​`1000`​ に設定します。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定](_images/database-select-operation-4.png) Figure 4. \[Fetch size (フェッチサイズ)\] 項目と \[Max row (最大行数)\] 項目の設定 XML エディターでは、​`fetchSize`​ および ​`maxRows`​ 設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#select-操作の-query-timeout-クエリタイムアウト-項目を設定する)Select 操作の \[Query Timeout (クエリタイムアウト)\] 項目を設定する 多くの場合、次の要因によりクエリの実行が遅延します。 - 非効率なクエリ (多くの行を反復処理する不適切なインデックスを持つクエリなど) - 混雑している RDBMS またはネットワーク - ロック競合 クエリの実行時にタイムアウトしないようにするには、​**\[Query timeout (クエリタイムアウト)\]**​ 項目と ​**\[Query time unit (クエリ時間単位)\]**​ 項目を設定します。すべての Database Connector 操作でタイムアウトの設定がサポートされています。 次の例は、タイムアウトを設定する方法を示しています。 1. Studio のフローで、​**\[Select\]**​ 操作を選択します。 2. 操作設定画面で、​**\[SQL Query Text (SQL クエリテキスト)\]**​ 項目を ​`select * from some_table`​ に設定します。 3. **\[Advanced (詳細)\]**​ タブで、JDBC ドライバーが実行中のステートメントをキャンセルしようとするまでの最短時間を ​**\[Query timeout (クエリタイムアウト)\]**​ 項目に設定します。例: `0`​。 4. **\[Query timeout (クエリタイムアウト)\]**​ に使用できる時間単位を ​**\[Query timeout unit (クエリタイムアウト単位)\]**​ 項目に設定します。例: `SECONDS`​。 次のスクリーンショットは、Studio の設定を示しています。 ![Studio での \[Query timeout (クエリタイムアウト)\] 項目の設定](_images/database-select-operation-5.png) Figure 5. \[Query timeout (クエリタイムアウト)\] の設定 XML エディターでは、​`queryTimeout`​ および ​`SECONDS`​ 設定は次のように記述されます。 ```xml select * from some_table ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ 項目の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ 項目を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![データソース参照接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#xa-トランザクションモードでのデータソース参照接続)XA トランザクションモードでのデータソース参照接続 Mule アプリケーションで XA トランザクションにバインドされている操作が必要であり、使用しているデータベース設定で接続プーリングが有効である場合は、データソース参照接続のデフォルト接続プール実装は Enhydra XAPool になります。 Enhydra XAPool は、プリペアードステートメントをサポートしません。これらの操作を実行するには、Bitronix 接続プールを使用してください。詳細は、​[『Bitronix トランザクションマネージャーの設定』](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager)​ドキュメントを参照してください。
XA トランザクションを使用するには、アプリケーションの JDBC データソース Spring Bean 設定ファイルで ​XADataSource​ オブジェクトを指定する必要があります。
XA トランザクションモードで Derby データベースの​**データソース参照接続**​を設定する例を示します。 1. Studio で、​`src/main/resources`​ フォルダーに ​`datasource-config.xml`​ Spring Bean ファイルを作成します。 2. `org.enhydra.jdbc.standard.Standard`​ クラスの最後に ​`XADataSource`​ オブジェクトを追加します (例: `class="org.enhydra.jdbc.standard.StandardXaDataSource`​)。 datasource-config.xml ファイル ```xml ``` 3. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ > ​**\[Create (作成)\]**​ を選択して ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 4. **\[Filter (検索条件)\]**​ に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Spring Config (Spring 設定)\]**​ の ​**\[Files (ファイル)\]**​ で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 6. **\[OK\]**​ をクリックします。 ![「Files (ファイル)」 項目で datasource-config.xml が設定された 「Spring Config (Spring 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-spring-configuration.png) 1. **\[Global Elements (グローバル要素)\]**​ で ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ > ​**\[Connection (接続)\]**​ で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Advanced (詳細)\]**​ タブで、​**\[Pooling profile (プーリングプロファイル)\]**​、​**\[Column types (列の型)\]**​、​**\[Reconnection (再接続)\]**​ の各項目を設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 8. **\[OK\]**​ をクリックします。 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続する場合は、​**\[Derby Connection (Derby 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続する場合は、​**\[Generic Connection (汎用接続)\]**​ 項目種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - サポートされるデータベースであるが、使用するカスタムオプションが接続種別に含まれない 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続する場合は、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続する場合は、​**\[MySQL Connection (MySQL 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続する場合は、​**\[Oracle Connection (Oracle 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加できます。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector ではプーリングプロファイルを使用して接続プールをビルドできます。これは、コネクタで必要な操作を実行するために使用できる確立済みの接続のグループです。これを使用すると、コネクタで新しい接続を毎回確立する必要はありません。 アプリケーションのグローバル要素で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を設定する場合は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目をオフにして接続プーリングでのコネクタのパフォーマンスを向上します。この項目をデフォルト (​`TRUE`​) として選択したままにしていると、接続がプールからチェックアウトされるたびに、接続プールでデータベースに対する接続確認が実行されるため、各操作の完了までにかかる時間が増加します。 **\[Data Source Reference Connection (データソース参照接続)\]**​ 以外のすべての接続種別設定で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目を ​`FALSE`​ に設定して Oracle データベース接続用のプーリングプロファイルを設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. 次の項目を設定します。 - **Max pool size (最大プールサイズ)**​: `30` - **Min pool size (最小プールサイズ)**​: `4` - **Acquire Increment (取得増分)**​: `1` - **Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)**​ ​`5` - **Max wait (最大待機)**​: `0` - **Max wait unit (最大待機単位)**​: `SECONDS (Default)` - **Max idle time (最大アイドル時間)**​ ​`0` - **Max statements (最大ステートメント)**​ ​`0` 1. **\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ をオフにします。 これにより、この項目は ​`FALSE`​ として設定されます。 2. **\[Column types (列の型)\]**​ で、​**\[Edit inline (インライン編集)\]**​ を選択します。 3. (​**+**​) プラス記号をクリックして、列の型を追加します。 4. **\[Column Type (列の型)\]**​ ウィンドウで ​**\[Id\]**​ を ​`2003`​、​**\[Type name (型名)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 5. ステップ 5 を繰り返します。 6. 新しい列型を追加するには、​**\[Id\]**​ を ​`2002`​、​**\[Type name (型名)\]**​ を ​`PHONE_NUMBER_ARRAY`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Pooling Profile (プーリングプロファイル)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 XML エディターでは、​``​ および ​`testConnectionOnCheckout="false`​ の設定は次のように記述されます。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ 項目を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port})))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle データベース](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.10/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ 項目の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ 項目を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![データソース参照接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#xa-トランザクションモードでのデータソース参照接続)XA トランザクションモードでのデータソース参照接続 Mule アプリケーションで XA トランザクションにバインドされている操作が必要であり、使用しているデータベース設定で接続プーリングが有効である場合は、データソース参照接続のデフォルト接続プール実装は Enhydra XAPool になります。 Enhydra XAPool は、プリペアードステートメントをサポートしません。これらの操作を実行するには、Bitronix 接続プールを使用してください。詳細は、​[『Bitronix トランザクションマネージャーの設定』](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager)​ドキュメントを参照してください。
XA トランザクションを使用するには、アプリケーションの JDBC データソース Spring Bean 設定ファイルで ​XADataSource​ オブジェクトを指定する必要があります。
XA トランザクションモードで Derby データベースの​**データソース参照接続**​を設定する例を示します。 1. Studio で、​`src/main/resources`​ フォルダーに ​`datasource-config.xml`​ Spring Bean ファイルを作成します。 2. `org.enhydra.jdbc.standard.Standard`​ クラスの最後に ​`XADataSource`​ オブジェクトを追加します (例: `class="org.enhydra.jdbc.standard.StandardXaDataSource`​)。 datasource-config.xml ファイル ```xml ``` 3. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ > ​**\[Create (作成)\]**​ を選択して ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 4. **\[Filter (検索条件)\]**​ に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Spring Config (Spring 設定)\]**​ の ​**\[Files (ファイル)\]**​ で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 6. **\[OK\]**​ をクリックします。 ![「Files (ファイル)」 項目で datasource-config.xml が設定された 「Spring Config (Spring 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-spring-configuration.png) 1. **\[Global Elements (グローバル要素)\]**​ で ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ > ​**\[Connection (接続)\]**​ で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Advanced (詳細)\]**​ タブで、​**\[Pooling profile (プーリングプロファイル)\]**​、​**\[Column types (列の型)\]**​、​**\[Reconnection (再接続)\]**​ の各項目を設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 8. **\[OK\]**​ をクリックします。 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続する場合は、​**\[Derby Connection (Derby 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続する場合は、​**\[Generic Connection (汎用接続)\]**​ 項目種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - サポートされるデータベースであるが、使用するカスタムオプションが接続種別に含まれない 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続する場合は、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続する場合は、​**\[MySQL Connection (MySQL 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続する場合は、​**\[Oracle Connection (Oracle 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加できます。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector ではプーリングプロファイルを使用して接続プールをビルドできます。これは、コネクタで必要な操作を実行するために使用できる確立済みの接続のグループです。これを使用すると、コネクタで新しい接続を毎回確立する必要はありません。 アプリケーションのグローバル要素で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を設定する場合は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目をオフにして接続プーリングでのコネクタのパフォーマンスを向上します。この項目をデフォルト (​`TRUE`​) として選択したままにしていると、接続がプールからチェックアウトされるたびに、接続プールでデータベースに対する接続確認が実行されるため、各操作の完了までにかかる時間が増加します。 すべての接続種別で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目の設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目を ​`FALSE`​ に設定して Oracle データベース接続用のプーリングプロファイルを設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. 次の項目を設定します。 - **Max pool size (最大プールサイズ)**​: `30` - **Min pool size (最小プールサイズ)**​: `4` - **Acquire Increment (取得増分)**​: `1` - **Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)**​ ​`5` - **Max wait (最大待機)**​: `0` - **Max wait unit (最大待機単位)**​: `SECONDS (Default)` - **Max idle time (最大アイドル時間)**​ ​`0` - **Max statements (最大ステートメント)**​ ​`0` 1. **\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ をオフにします。 これにより、この項目は ​`FALSE`​ として設定されます。 2. **\[Column types (列の型)\]**​ で、​**\[Edit inline (インライン編集)\]**​ を選択します。 3. (​**+**​) プラス記号をクリックして、列の型を追加します。 4. **\[Column Type (列の型)\]**​ ウィンドウで ​**\[Id\]**​ を ​`2003`​、​**\[Type name (型名)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 5. ステップ 5 を繰り返します。 6. 新しい列型を追加するには、​**\[Id\]**​ を ​`2002`​、​**\[Type name (型名)\]**​ を ​`PHONE_NUMBER_ARRAY`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Pooling Profile (プーリングプロファイル)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 XML エディターでは、​``​ および ​`testConnectionOnCheckout="false`​ の設定は次のように記述されます。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ 項目を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port})))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle データベース](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.12/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ 項目の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ 項目を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![データソース参照接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#data-source-connection-xa)XA トランザクションモードでのデータソース参照接続 Mule アプリケーションで XA トランザクションにバインドされている操作が必要であり、使用しているデータベース設定で接続プーリングが有効である場合は、データソース参照接続のデフォルト接続プール実装は Enhydra XAPool になります。 Enhydra XAPool は、プリペアードステートメントをサポートしません。これらの操作を実行するには、Bitronix 接続プールを使用してください。詳細は、​[『Bitronix トランザクションマネージャーの設定』](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager)​ドキュメントを参照してください。
XA トランザクションを使用するには、アプリケーションの JDBC データソース Spring Bean 設定ファイルで ​XADataSource​ オブジェクトを指定する必要があります。
XA トランザクションモードで Derby データベースの​**データソース参照接続**​を設定する例を示します。 1. Studio で、​`src/main/resources`​ フォルダーに ​`datasource-config.xml`​ Spring Bean ファイルを作成します。 2. `org.enhydra.jdbc.standard.Standard`​ クラスの最後に ​`XADataSource`​ オブジェクトを追加します (例: `class="org.enhydra.jdbc.standard.StandardXaDataSource`​)。 datasource-config.xml ファイル ```xml ``` 3. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ > ​**\[Create (作成)\]**​ を選択して ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 4. **\[Filter (検索条件)\]**​ に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Spring Config (Spring 設定)\]**​ の ​**\[Files (ファイル)\]**​ で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 6. **\[OK\]**​ をクリックします。 ![「Files (ファイル)」 項目で datasource-config.xml が設定された 「Spring Config (Spring 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-spring-configuration.png) 1. **\[Global Elements (グローバル要素)\]**​ で ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ > ​**\[Connection (接続)\]**​ で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Advanced (詳細)\]**​ タブで、​**\[Pooling profile (プーリングプロファイル)\]**​、​**\[Column types (列の型)\]**​、​**\[Reconnection (再接続)\]**​ の各項目を設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 8. **\[OK\]**​ をクリックします。 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続する場合は、​**\[Derby Connection (Derby 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続する場合は、​**\[Generic Connection (汎用接続)\]**​ 項目種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - サポートされるデータベースであるが、使用するカスタムオプションが接続種別に含まれない 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続する場合は、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続する場合は、​**\[MySQL Connection (MySQL 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続する場合は、​**\[Oracle Connection (Oracle 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加できます。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector ではプーリングプロファイルを使用して接続プールをビルドできます。これは、コネクタで必要な操作を実行するために使用できる確立済みの接続のグループです。これを使用すると、コネクタで新しい接続を毎回確立する必要はありません。 アプリケーションのグローバル要素で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を設定する場合は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目をオフにして接続プーリングでのコネクタのパフォーマンスを向上します。この項目をデフォルト (​`TRUE`​) として選択したままにしていると、接続がプールからチェックアウトされるたびに、接続プールでデータベースに対する接続確認が実行されるため、各操作の完了までにかかる時間が増加します。 すべての接続種別で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目の設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目を ​`FALSE`​ に設定して Oracle データベース接続用のプーリングプロファイルを設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. 次の項目を設定します。 - **Max pool size (最大プールサイズ)**​: `30` - **Min pool size (最小プールサイズ)**​: `4` - **Acquire Increment (取得増分)**​: `1` - **Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)**​ ​`5` - **Max wait (最大待機)**​: `0` - **Max wait unit (最大待機単位)**​: `SECONDS (Default)` - **Max idle time (最大アイドル時間)**​ ​`0` - **Max statements (最大ステートメント)**​ ​`0` 1. **\[Test connection on checkout (チャックアウト時に接続をテスト)\]**​ をオフにします。 これにより、この項目は ​`FALSE`​ として設定されます。 2. **\[Column types (列の型)\]**​ で、​**\[Edit inline (インライン編集)\]**​ を選択します。 3. (​**+**​) プラス記号をクリックして、列の型を追加します。 4. **\[Column Type (列の型)\]**​ ウィンドウで ​**\[Id\]**​ を ​`2003`​、​**\[Type name (型名)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 5. ステップ 5 を繰り返します。 6. 新しい列型を追加するには、​**\[Id\]**​ を ​`2002`​、​**\[Type name (型名)\]**​ を ​`PHONE_NUMBER_ARRAY`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Pooling Profile (プーリングプロファイル)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 XML エディターでは、​``​ および ​`testConnectionOnCheckout="false`​ の設定は次のように記述されます。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ 項目を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port})))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle データベース](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.13/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ 項目の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ 項目を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットは設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットは設定を示しています。 ![データソース参照接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#data-source-connection-xa)XA トランザクションモードでのデータソース参照接続 Mule アプリケーションで XA トランザクションにバインドされている操作が必要であり、使用しているデータベース設定で接続プーリングが有効である場合は、データソース参照接続のデフォルト接続プール実装は Enhydra XAPool になります。 Enhydra XAPool は、プリペアードステートメントをサポートしません。これらの操作を実行するには、Bitronix 接続プールを使用してください。詳細は、​[『Bitronix トランザクションマネージャーの設定』](https://docs.mulesoft.com/mule-runtime/latest/using-bitronix-to-manage-transactions#configuring-the-bitronix-transaction-manager)​ドキュメントを参照してください。
XA トランザクションを使用するには、アプリケーションの JDBC データソース Spring Bean 設定ファイルで ​XADataSource​ オブジェクトを指定する必要があります。
XA トランザクションモードで Derby データベースの​**データソース参照接続**​を設定する例を示します。 1. Studio で、​`src/main/resources`​ フォルダーに ​`datasource-config.xml`​ Spring Bean ファイルを作成します。 2. `org.enhydra.jdbc.standard.Standard`​ クラスの最後に ​`XADataSource`​ オブジェクトを追加します (例: `class="org.enhydra.jdbc.standard.StandardXaDataSource`​)。 datasource-config.xml ファイル ```xml ``` 3. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ > ​**\[Create (作成)\]**​ を選択して ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 4. **\[Filter (検索条件)\]**​ に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 5. **\[Spring Config (Spring 設定)\]**​ の ​**\[Files (ファイル)\]**​ で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 6. **\[OK\]**​ をクリックします。 ![「Files (ファイル)」 項目で datasource-config.xml が設定された 「Spring Config (Spring 設定)」 ウィンドウ](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-spring-configuration.png) 1. **\[Global Elements (グローバル要素)\]**​ で ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ > ​**\[Connection (接続)\]**​ で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Advanced (詳細)\]**​ タブで、​**\[Pooling profile (プーリングプロファイル)\]**​、​**\[Column types (列の型)\]**​、​**\[Reconnection (再接続)\]**​ の各項目を設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 8. **\[OK\]**​ をクリックします。 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続するには、​**\[Derby Connection (Derby 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続するには、​**\[Generic Connection (汎用接続)\]**​ 項目種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - 接続種別に含まれないカスタムオプションを使用するサポート対象データベース 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続するには、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続するには、​**\[MySQL Connection (MySQL 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続するには、​**\[Oracle Connection (Oracle 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加します。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加します。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector ではプーリングプロファイルを使用して接続プールをビルドできます。これは、コネクタで必要な操作を実行するために使用できる確立済みの接続のグループです。これを使用すると、コネクタで新しい接続を毎回確立する必要はありません。 アプリケーションのグローバル要素で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を設定する場合は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目をオフにして接続プーリングでのコネクタのパフォーマンスを向上します。この項目をデフォルト (​`TRUE`​) として選択したままにしていると、接続がプールからチェックアウトされるたびに、接続プールでデータベースに対する接続確認が実行されるため、各操作の完了までにかかる時間が増加します。 すべての接続種別で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目の設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、​**\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ 項目を ​`FALSE`​ に設定して Oracle データベース接続用のプーリングプロファイルを設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. 次の項目を設定します。 - **Max pool size (最大プールサイズ)**​: `30` - **Min pool size (最小プールサイズ)**​: `4` - **Acquire Increment (取得増分)**​: `1` - **Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)**​ ​`5` - **Max wait (最大待機)**​: `0` - **Max wait unit (最大待機単位)**​: `SECONDS (Default)` - **Max idle time (最大アイドル時間)**​ ​`60` - **Max statements (最大ステートメント)**​ ​`0` 1. **\[Test connection on checkout (チェックアウト時に接続をテスト)\]**​ をオフにします。 これにより、この項目は ​`FALSE`​ として設定されます。 2. **\[Column types (列の型)\]**​ で、​**\[Edit inline (インライン編集)\]**​ を選択します。 3. (​**+**​) プラス記号をクリックして、列の型を追加します。 4. **\[Column Type (列の型)\]**​ ウィンドウで ​**\[Id\]**​ を ​`2003`​、​**\[Type name (型名)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 5. ステップ 5 を繰り返します。 6. 新しい列型を追加するには、​**\[Id\]**​ を ​`2002`​、​**\[Type name (型名)\]**​ を ​`PHONE_NUMBER_ARRAY`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Pooling Profile (プーリングプロファイル)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 XML エディターでは、​``​ および ​`testConnectionOnCheckout="false`​ の設定は次のように記述されます。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ 項目を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port})))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle データベース](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#キャッシュクエリテンプレートサイズを設定する)キャッシュクエリテンプレートサイズを設定する 次の例は、接続の ​**\[Cache Query Template Size (キャッシュクエリテンプレートサイズ)\]**​ 項目を設定する方法を示しています。 1. Studio で \[Database Global Configuration (データベースグローバル設定)\] ウィンドウを開きます。 2. **\[Advanced (詳細)\]**​ タブを選択します。 3. **\[Cache Query Template Size (キャッシュクエリテンプレートサイズ)\]**​ 項目を目的の値に設定します。 ![50 に設定された \[Cache Query Template Size (キャッシュクエリテンプレートサイズ)\] 項目](_images/database-cachequery.png) ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.14/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![データソース参照接続](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続する場合は、​**\[Derby Connection (Derby 接続)\]**​ 種別を使用します。 次の例は、Anypoint Studio で ​**\[Derby Connection (Derby 接続)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続する場合は、​**\[Generic Connection (汎用接続)\]**​ 種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - サポートされるデータベースであるが、使用するカスタムオプションが接続種別に含まれない 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続する場合は、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 種別を使用します。 次の例は、Anypoint Studio で ​**\[Microsoft SQL Server (Microsoft SQL Server 接続)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続する場合は、​**\[MySQL Connection (MySQL 接続)\]**​ 種別を使用します。 次の例は、Anypoint Studio で ​**\[MySQL Connection (MySQL 接続)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続する場合は、​**\[Oracle Connection (Oracle 接続)\]**​ 種別を使用します。 次の例は、Anypoint Studio で ​**\[Oracle Connection (Oracle 接続)\]**​ を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加できます。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector では ​**\[Pooling profile (プーリングプロファイル)\]**​ パラメーターがサポートされており、このパラメーターを使用して、いくつかの接続を提供する接続プールをビルドできます。 **\[Data Source Reference Connection (データソース参照接続)\]**​ 以外のすべての接続種別設定で ​**\[Pooling profile (プーリングプロファイル)\]**​ 設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、MySQL データベース接続の ​**\[Pooling profile (プーリングプロファイル)\]**​ パラメーターを設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. **\[Max pool size (最大プールサイズ)\]**​ を ​`5`​、​**\[Min pool size (最小プールサイズ)\]**​ を ​`0`​、​**\[Acquire increment (取得増分)\]**​ を ​`1`​、​**\[Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)\]**​ を ​`5`​、​**\[Max wait (最大待機)\]**​ を ​`0`​、​**\[Max wait unit (最大待機単位)\]**​ を ​`SECONDS (Default)`​、​**\[Max idle time (最大アイドル時間)\]**​ を ​`0`​ に設定します。 3. **\[Additional properties (追加プロパティ)\]**​ パラメーターを有効にします。 以前に設定されたメインプロパティはこの追加プロパティによって上書きされません。 4. (​**+**​) プラス記号をクリックして、新規プロパティを追加します。 5. **\[Additional property (追加プロパティ)\]**​ ウィンドウで ​**\[Key (キー)\]**​ を ​`checkoutTimeout`​、​**\[Value (値)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 6. 新規プロパティを追加するには、​**\[Key (キー)\]**​ を ​`idleConnectionTestPeriod`​、​**\[Value (値)\]**​ を ​`2`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![プーリングプロファイルの設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 データベースには ​``​ 要素などの特別なプーリング属性があるため、XML エディターでは、設定で標準の Mule ​``​ 要素ではなく ​`preparedStatementCacheSize`​ 要素を使用します。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port}))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.8/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # データベース接続の設定 データベース用 Anypoint Connector (Database Connector) は、JDBC ドライバーを使用できるあらゆるデータベースに接続できます。次の例は、最も一般的なデータベース (Derby、Microsoft SQL Server、MySQL、Oracle、汎用データベースなど) に接続する方法を示しています。また、高度なユースケースとして、Anypoint Studio と XML エディターの両方で、グローバルデータソースへの接続、JDBC ドライバーの設定、接続プーリングの設定、TNS を使用した Oracle データベースへの接続を行う方法も示しています。 ## [](#データソース参照接続の設定)データソース参照接続の設定 Database Connector では、​**\[Generic Connection (汎用接続)\]**​ 項目の設定時に指定したパラメーター値を使用して、JDBC データソースを生成します。独自のデータソースを作成し、そのデータソースを使用してデータベースに接続する場合は、​**\[Data Source Reference Connection (データソース参照接続)\]**​ 項目を設定します。 次の例は、Anypoint Studio を使用して Derby データベースへのデータソース参照接続を設定する方法を示しています。 1. Studio の ​`src/main/resources`​ フォルダーで、Derby データベースに接続するカスタム ​`enhydra`​ データソースを定義する ​`datasource-config.xml`​ bean ファイルを作成します。 datasource-config.xml ファイル ```xml ``` 2. Mule フローに戻り、​**\[Global Elements (グローバル要素)\]**​ ビューに移動して、​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`spring`​」と入力し、​**\[Spring Config (Spring 設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Spring Config (Spring 設定)\]**​ ウィンドウの ​**\[Files (ファイル)\]**​ 項目で、Spring Module を使用して Spring 設定ファイルを参照する ​`datasource-config.xml`​ を追加します。 5. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![Spring 設定データソース](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-spring-configuration.png) Figure 1. Spring 設定データソース 1. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ウィンドウを開きます。 2. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 3. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Data Source Reference Connection (データソース参照接続)\]**​ を選択します。 4. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 5. **\[Data source ref (データソース参照)\]**​ で、​`datasource-config.xml`​ bean ファイルに作成された bean ID ​`jdbcDataSource`​ を追加します。 6. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 7. **\[OK\]**​ をクリックします。 次のスクリーンショットはこの設定を示しています。 ![データソース参照接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-datasource-connection.png) Figure 2. データソース参照接続 XML エディターでは、Spring 設定とデータベース設定は次のように記述されます。 ```xml ``` ## [](#derby-接続の設定)Derby 接続の設定 Derby データベースに接続する場合は、​**\[Derby Connection (Derby 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Derby Connection (Derby 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Derby JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Database (データベース)\]**​ を ​`derbyDB`​、​**\[Subsub protocol (Subsub プロトコル)\]**​ を ​`directory`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Derby 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-derby-connection.png) Figure 3. Derby 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#汎用接続の設定)汎用接続の設定 次のデータベースに接続する場合は、​**\[Generic Connection (汎用接続)\]**​ 項目種別を使用します。 - MuleSoft で特定の接続種別が提供されていないデータベース - サポートされるデータベースであるが、使用するカスタムオプションが接続種別に含まれない 次の例は、Anypoint Studio で H2 データベースに接続する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[URL\]**​ を ​`jdbc:h2:file:/tmp/datasenseDBand`​、​**\[Driver class name (ドライバークラス名)\]**​ を ​`org.h2.Driver`​ に設定します。 7. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 8. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![汎用接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-generic-connection.png) Figure 4. 汎用接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#microsoft-sql-server-接続の設定)Microsoft SQL Server 接続の設定 Microsoft SQL Server データベースに接続する場合は、​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Microsoft SQL Server Connection (Microsoft SQL Server 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Microsoft SQL Server ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`553`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database name (データベース名)\]**​ を ​`microsoftDB`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Microsoft SQL Server 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-mssql-connection.png) Figure 5. Microsoft SQL Server 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 MySQL データベースに接続する場合は、​**\[MySQL Connection (MySQL 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`0.0.0.0`​、​**\[Port (ポート)\]**​ を ​`3306`​、​**\[User (ユーザー)\]**​ を ​`Max`​、​**\[Password (パスワード)\]**​ を ​`password`​、​**\[Database (データベース)\]**​ を ​`someSchema`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![MySQL 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-mysql-connection.png) Figure 6. MySQL 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#oracle-接続の設定)Oracle 接続の設定 Oracle データベースに接続する場合は、​**\[Oracle Connection (Oracle 接続)\]**​ 項目種別を使用します。 次の例は、Anypoint Studio で接続を設定する方法を示しています。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. **\[Host (ホスト)\]**​ を ​`192.168.99.100`​、​**\[Port (ポート)\]**​ を ​`1521`​、​**\[User (ユーザー)\]**​ を ​`system`​、​**\[Password (パスワード)\]**​ を ​`oracle`​、​**\[Instance (インスタンス)\]**​ を ​`xe`​ に設定します。 7. **\[Transactions (トランザクション)\]**​ タブで、必要に応じて、データベースに接続するときのトランザクション分離 (XA トランザクション) を指定します。 8. **\[Advanced (詳細)\]**​ タブで、必要に応じて接続プーリングおよび再接続情報 (再接続戦略を含む) を指定します。 9. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 10. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![Oracle 接続のグローバル設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracle-connection.png) Figure 7. Oracle 接続の設定 XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#jdbc-ドライバーの設定)JDBC ドライバーの設定 接続を設定したら、JDBC ドライバーを追加できます。次の例は、MySQL データベースのドライバーを追加する方法を示しています。 1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。 - **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Configure (設定)\]**​ をクリックし、​**\[Add Maven dependency (Maven 連動関係を追加)\]**​ を選択して、連動関係を選択します。 ![Maven 連動関係の選択](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-dependency.png) Figure 8. Maven 連動関係の選択 - 連動関係をプロジェクトの ​`pom.xml`​ ファイルに直接追加します。 ```xml mysql mysql-connector-java 5.1.48 ``` 2. Mule でドライバーの連動関係を Database Connector に公開するように ​`pom.xml`​ ファイルを設定します。 ```xml org.mule.tools.maven mule-maven-plugin 1.0.0 mysql mysql-connector-java ``` ## [](#接続プールの設定)接続プールの設定 接続の確立には、コネクタ、リレーショナルデータベース管理システム (RDBMS) ネットワーク、および処理オーバーヘッドの点でコストがかかります。Database Connector では ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目がサポートされており、この項目を使用して、いくつかの接続を提供する接続プールをビルドできます。 **\[Data Source Reference Connection (データソース参照接続)\]**​ 以外のすべての接続種別設定で ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目設定が受け入れられます。JDBC では、プーリングはデータソースレベルで実行されるため、プーリングを有効にするには、グローバルデータソースを設定する必要があります。 次の例は、MySQL データベース接続の ​**\[Pooling profile (プーリングプロファイル)\]**​ 項目を設定する方法を示しています。 1. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Advanced (詳細)\]**​ タブの ​**\[Pooling profile (プーリングプロファイル)\]**​ で ​**\[Edit inline (インライン編集)\]**​ を選択します。 2. **\[Max pool size (最大プールサイズ)\]**​ を ​`5`​、​**\[Min pool size (最小プールサイズ)\]**​ を ​`0`​、​**\[Acquire increment (取得増分)\]**​ を ​`1`​、​**\[Prepared statement cache size (プリペアードステートメントのキャッシュサイズ)\]**​ を ​`5`​、​**\[Max wait (最大待機)\]**​ を ​`0`​、​**\[Max wait unit (最大待機単位)\]**​ を ​`SECONDS (Default)`​、​**\[Max idle time (最大アイドル時間)\]**​ を ​`0`​ に設定します。 3. **\[Additional properties (追加プロパティ)\]**​ パラメーターを有効にします。 以前に設定されたメインプロパティはこの追加プロパティによって上書きされません。 4. (​**+**​) プラス記号をクリックして、新規プロパティを追加します。 5. **\[Additional property (追加プロパティ)\]**​ ウィンドウで ​**\[Key (キー)\]**​ を ​`checkoutTimeout`​、​**\[Value (値)\]**​ を ​`1000`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 6. 新規プロパティを追加するには、​**\[Key (キー)\]**​ を ​`idleConnectionTestPeriod`​、​**\[Value (値)\]**​ を ​`2`​ に設定し、​**\[Finish (完了)\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![「Pooling Profile (プーリングプロファイル)」 項目の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-pooling-configuration.png) Figure 9. プーリングプロファイルの設定 データベースには ​``​ 要素などの特別なプーリング属性があるため、XML エディターでは、設定で標準の Mule ​``​ 要素ではなく ​`preparedStatementCacheSize`​ 要素を使用します。 ```xml ``` ## [](#tns-名を使用した-oracle-接続の設定)TNS 名を使用した Oracle 接続の設定 次の例は、​`tnsnames.ora`​ ファイルを使用する Oracle データベースに接続する ​**\[Generic Connection (汎用接続)\]**​ 項目を設定する方法を示しています。 ファイアウォールで Mule Runtime Engine をデータベースから分離している場合、TNS 接続で ​`ENABLE=BROKEN`​ パラメーターを使用してキープアライブ接続を有効にします。 キープアライブ接続を設定しない場合、非アクティブタイマーの期限切れにより接続のトラフィックがドロップする可能性があります。 1. Studio で、​**\[Global Elements (グローバル要素)\]**​ ビューに移動します。 2. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウの ​**\[Connection (接続)\]**​ 項目で ​**\[Generic Connection (汎用接続)\]**​ を選択します。 5. **\[Configure (設定)\]**​ をクリックし、必要な JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 6. 接続の ​**\[URL\]**​ を ​`jdbc:oracle:thin:${oracle.user}/${oracle.password}@(DESCRIPTION=(ENABLE=BROKEN)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host1})(PORT=${oracle.port}))(ADDRESS=(PROTOCOL=TCP)(HOST=${oracle.host2})(PORT=${oracle.port}))(CONNECT_DATA=(SERVICE_NAME=${oracle.service})))`​ に設定します。 7. **\[Driver class name (ドライバークラス名)\]**​ を ​`oracle.jdbc.driver.OracleDriver`​ に設定します。 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、データベースとの接続を検証します。 9. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio の設定を示しています。 ![TNS 設定を使用した Oracle データベース](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracle-tns.png) Figure 10. TNS 設定を使用した Oracle XML エディターでは、この設定は次のように記述されます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector リファレンス](https://docs.mulesoft.com/jp/db-connector/1.9/database-documentation) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # テーブルへの大きなファイルコンテンツの挿入の例 データベース用 Anypoint Connector (Database Connector) の ​**Insert**​ 操作では、テーブルへのキャラクターラージオブジェクト (CLOB) の挿入がサポートされます。次の例は、大きなファイルのコンテンツを読み取って、そのコンテンツの型をサポートするテーブルにコンテンツを挿入する方法を示しています。 この例を実行するには、次の操作が必要です。 - テーブルを作成する - Mule アプリケーションを作成する - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio キャンバスでの Mule アプリケーションフローの例](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-insert-large-clobs.png) ## [](#テーブルの作成)テーブルの作成 任意の SQL クライアントツールを使用して、次の SQL ステートメントを含む ​`.sql`​ スクリプトを実行してテーブルを作成します。 ```sql CREATE TABLE AWESOMECLOBDATA( id INT AUTO_INCREMENT PRIMARY KEY, clob_data CLOB ); ``` ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 次の手順に従って Mule アプリケーションを作成します。 1. Studio で HTTP の ​**\[Listener\]**​ ソースをキャンバスにドラッグします。 2. HTTP グローバル接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. HTTP グローバル接続を設定して、​**\[OK\]**​ をクリックします。 4. **\[Path (パス)\]**​ を ​`/read-insert`​ に設定します。 5. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 6. **\[Message (メッセージ)\]**​ を ​`Starting LARGE CLOB reading`​ に設定します。 7. File Connector の ​**\[Read\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 8. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 9. ファイルを適切に読み取るために ​**\[Working Directory (作業ディレクトリ)\]**​ を ​`/dir/containing/file/`​ に設定します。 10. **\[OK\]**​ をクリックします。 11. **\[File Path (ファイルパス)\]**​ を ​`awesomeFile.json`​ に設定します。 12. **\[MIME Type (MIME タイプ)\]**​ タブで ​**\[MIME Type (MIME タイプ)\]**​ を ​`application/octet-stream`​ に設定します。 13. 別の ​**\[Logger\]**​ コンポーネントを ​**\[Read\]**​ 操作の右にドラッグします。 14. **\[Display Name (表示名)\]**​ を ​`LARGE CLOB’s content on flow`​ と設定します。 15. Database Connector の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Logger\]**​ コンポーネントの右にドラッグします。 16. データベースグローバル接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 17. データベース接続を設定して、​**\[OK\]**​ をクリックします。 18. **\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`INSERT INTO AWESOMECLOBDATA (clob_data) VALUES (:payload)`​ に設定します。 SQL テキストでは、ファイルのコンテンツを含む新しいレコードをテーブルに挿入します。 19. **\[Input Parameters (入力パラメーター)\]**​ を式に設定します。 ```none { payload: payload } ``` 1. 別の ​**\[Logger\]**​ コンポーネントを ​**\[Insert\]**​ 操作の右にドラッグします。 2. **\[Display Name (表示名)\]**​ を ​`LARGE CLOB’s content inserted`​ と設定します。 3. **\[Message (メッセージ)\]**​ を式 ​`payload`​ に設定します。 4. Mule アプリケーションを保存して実行します。 5. ターミナルで curl コマンド「​`curl localhost:8081/read-insert`​」を使用して、アプリケーションをテストします。 ### [](#アプリケーションの-mime-タイプ)アプリケーションの MIME タイプ `application/octet-stream`​ MIME タイプでは、ファイルのコンテンツがバイナリ形式に変換されるため、​**Read**​ 操作から ​**Insert**​ 操作にデータを適切に流すことができます。 たとえば、​`text/plain`​ MIME タイプを使用した場合、メモリ不足 (OOM) エラーが発生する可能性があります。これは、​**Insert**​ 操作の ​**\[Input Parameters (入力パラメーター)\]**​ 項目で定義された DataWeave ブロックで、データを操作自体に配布する前に、ファイルからのデータストリーム全体をテキストに変換する操作が試行されるために発生する可能性があります。 `application/json`​ MIME タイプを使用することもできます。ただし、ペイロードを参照するには、​**Insert**​ 操作で ​`payload.^raw`​ を使用します。 ## [](#mule-アプリケーションの-xml)Mule アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [File Connector](https://docs.mulesoft.com/file-connector/1.3/) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # テーブルへの大きなファイルコンテンツの挿入の例 データベース用 Anypoint Connector (Database Connector) の ​**Insert**​ 操作では、テーブルへのキャラクターラージオブジェクト (CLOB) の挿入がサポートされます。次の例は、大きなファイルのコンテンツを読み取って、そのコンテンツの型をサポートするテーブルにコンテンツを挿入する方法を示しています。 この例を実行するには、次の操作が必要です。 - テーブルを作成する - Mule アプリケーションを作成する - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio キャンバスでの Mule アプリケーションフローの例](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-insert-large-clobs.png) ## [](#テーブルの作成)テーブルの作成 任意の SQL クライアントツールを使用して、次の SQL ステートメントを含む ​`.sql`​ スクリプトを実行してテーブルを作成します。 ```sql CREATE TABLE AWESOMECLOBDATA( id INT AUTO_INCREMENT PRIMARY KEY, clob_data CLOB ); ``` ## [](#mule-アプリケーションの作成)Mule アプリケーションの作成 次の手順に従って Mule アプリケーションを作成します。 1. Studio で HTTP の ​**\[Listener\]**​ ソースをキャンバスにドラッグします。 2. HTTP グローバル接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 3. HTTP グローバル接続を設定して、​**\[OK\]**​ をクリックします。 4. **\[Path (パス)\]**​ を ​`/read-insert`​ に設定します。 5. **\[Logger\]**​ コンポーネントを \[HTTP\] の ​**\[Listener\]**​ ソースの右にドラッグします。 6. **\[Message (メッセージ)\]**​ を ​`Starting LARGE CLOB reading`​ に設定します。 7. File Connector の ​**\[Read\]**​ 操作を ​**\[Logger\]**​ コンポーネントの右にドラッグします。 8. 操作の設定画面の ​**\[General (一般)\]**​ タブで、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックし、グローバル要素設定項目にアクセスします。 9. ファイルを適切に読み取るために ​**\[Working Directory (作業ディレクトリ)\]**​ を ​`/dir/containing/file/`​ に設定します。 10. **\[OK\]**​ をクリックします。 11. **\[File Path (ファイルパス)\]**​ を ​`awesomeFile.json`​ に設定します。 12. **\[MIME Type (MIME タイプ)\]**​ タブで ​**\[MIME Type (MIME タイプ)\]**​ を ​`application/octet-stream`​ に設定します。 13. 別の ​**\[Logger\]**​ コンポーネントを ​**\[Read\]**​ 操作の右にドラッグします。 14. **\[Display Name (表示名)\]**​ を ​`LARGE CLOB’s content on flow`​ と設定します。 15. Database Connector の ​**\[Insert\]**​ 操作を 2 番目の ​**\[Logger\]**​ コンポーネントの右にドラッグします。 16. データベースグローバル接続を設定するために、​**\[Connector configuration (コネクタ設定)\]**​ 項目の横にあるプラス記号 (​**+**​) をクリックします。 17. データベース接続を設定して、​**\[OK\]**​ をクリックします。 18. **\[SQL Query Text (SQL クエリテキスト)\]**​ を ​`INSERT INTO AWESOMECLOBDATA (clob_data) VALUES (:payload)`​ に設定します。 SQL テキストでは、ファイルのコンテンツを含む新しいレコードをテーブルに挿入します。 19. **\[Input Parameters (入力パラメーター)\]**​ を式に設定します。 ```none { payload: payload } ``` 1. 別の ​**\[Logger\]**​ コンポーネントを ​**\[Insert\]**​ 操作の右にドラッグします。 2. **\[Display Name (表示名)\]**​ を ​`LARGE CLOB’s content inserted`​ と設定します。 3. **\[Message (メッセージ)\]**​ を式 ​`payload`​ に設定します。 4. Mule アプリケーションを保存して実行します。 5. ターミナルで curl コマンド「​`curl localhost:8081/read-insert`​」を使用して、アプリケーションをテストします。 ### [](#アプリケーションの-mime-タイプ)アプリケーションの MIME タイプ `application/octet-stream`​ MIME タイプでは、ファイルのコンテンツがバイナリ形式に変換されるため、​**Read**​ 操作から ​**Insert**​ 操作にデータを適切に流すことができます。 たとえば、​`text/plain`​ MIME タイプを使用した場合、メモリ不足 (OOM) エラーが発生する可能性があります。これは、​**Insert**​ 操作の ​**\[Input Parameters (入力パラメーター)\]**​ 項目で定義された DataWeave ブロックで、データを操作自体に配布する前に、ファイルからのデータストリーム全体をテキストに変換する操作が試行されるために発生する可能性があります。 `application/json`​ MIME タイプを使用することもできます。ただし、ペイロードを参照するには、​**Insert**​ 操作で ​`payload.^raw`​ を使用します。 ## [](#mule-アプリケーションの-xml)Mule アプリケーションの XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [File Connector](https://docs.mulesoft.com/file-connector/1.3/) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `1521` - **User (ユーザー)**​: `SYS as SYSDBA` - **Password (パスワード)**​: `Oradoc_db1` - **Instance (インスタンス)**​: `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースのグローバル要素設定。](_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 項目を設定するデータベースのグローバル要素詳細設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set payload コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`createStruct`​ および ​`createArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::createArray("dbConfig", "PHONE_NUMBER_ARRAY",[Db::createStruct("dbConfig", "PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::createStruct("dbConfig", "PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::createArray("dbConfig", "PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `createStruct`​ 関数では、​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトが作成されます。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Struct`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) `createArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトが作成されます。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Array`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`createStruct`​ 関数を使用して作成された ​`PERSON`​ オブジェクトの配列) これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`createArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​: `phoneBook` - **Custom type (カスタム型)**​: `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.10/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.10/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `1521` - **User (ユーザー)**​: `SYS as SYSDBA` - **Password (パスワード)**​: `Oradoc_db1` - **Instance (インスタンス)**​: `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナー設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースのグローバル要素設定。](_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 項目を設定するデータベースのグローバル要素詳細設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set payload コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`createStruct`​ および ​`createArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::createArray("dbConfig", "PHONE_NUMBER_ARRAY",[Db::createStruct("dbConfig", "PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::createStruct("dbConfig", "PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::createArray("dbConfig", "PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `createStruct`​ 関数では、​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトが作成されます。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Struct`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) `createArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトが作成されます。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Array`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`createStruct`​ 関数を使用して作成された ​`PERSON`​ オブジェクトの配列) これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`createArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​: `phoneBook` - **Custom type (カスタム型)**​: `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#preparestruct-および-preparearray-関数の使用)prepareStruct および prepareArray 関数の使用 以前の Mule バージョンでは ​`createStruct`​ および ​`createArray`​ 関数が提供されましたが、これらは非推奨になりました。これらの関数では JDBC 値がすぐに作成されましたが、その値は、Database Connector 操作で使用された接続と同じ接続を使用して作成されている必要があります。新しい ​`prepareStruct`​ および ​`prepareArray`​ 関数を使用すると、Database Connector ではこれらの JDBC 値の作成を、適切な SQL 接続が使用可能になるまで遅延することができます。​`createArray`​ および ​`createStruct`​ 関数は、以前は Oracle 接続プロバイダーでのみ動作していました。​`preprareStruct`​ および ​`prepareArray`​ 関数は、汎用接続プロバイダーやデータソース参照接続プロバイダーなどのすべての接続プロバイダーと互換性が確保されるようになり、接続の負荷分散とフォールトトレランス URI を正常に設定できます。
非推奨関数 アクティブな関数

Db::createArray(configName, typeName, values): java.sql.Array

Db::prepareArray(typeName, values): java.util.List

Db::createStruct(configName, typeName, properties): java.sql.Struct

Db::prepareStruct(typeName, properties): java.util.List

### [](#パラメーター)パラメーター `Db::prepareArray(typeName, values): java.util.List`​ 関数では、データベースに送信する配列を java.sql.Array として準備します。
パラメーター 型 説明

typeName

String (文字列)

作成する Array (配列) 型の名前。

values

List<Object>

データベースに渡す値。

java.util.List

List<Object>

戻り値は、後で配列を作成するためのすべての情報を保持する不変リストです。

`Db::prepareStruct(typeName, properties): java.util.List`​ 関数では、データベースに送信する構造を java.sql.Struct として準備します。
パラメーター 型 説明

typeName

String (文字列)

作成する Struct (構造) 型の名前。

properties

List<Object>

データベースに渡すプロパティ。

java.util.List

List<Object>

戻り値は、後で構造を作成するためのすべての情報を保持する不変リストです。

非推奨関数を使用する既存の Mule アプリケーションがある場合、​createStruct​ を ​prepareStruct​ に置き換えて、​createArray​ を ​prepareArray​ に置き換えます。また、最初のパラメーター ​configName​ を関数構造から削除します。
## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `1521` - **User (ユーザー)**​: `SYS as SYSDBA` - **Password (パスワード)**​: `Oradoc_db1` - **Instance (インスタンス)**​: `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナー設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースのグローバル要素設定。](_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 項目を設定するデータベースのグローバル要素詳細設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set payload コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`prepareStruct`​ および ​`prepareArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::prepareArray("PHONE_NUMBER_ARRAY",[Db::prepareStruct("PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::prepareStruct("PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::prepareArray("PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `prepareStruct`​ では、データベース操作の実行時に ​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトを作成するように Mule に指示します。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) Mule アプリケーションで Database Connector 操作を実行するときに、​`prepareArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトを作成するように Mule に指示します。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`prepareStruct`​ 関数を使用して作成された、各配列が ​`PERSON`​ オブジェクトを表す配列) `prepareStruct`​ および ​`prepareArray`​ 関数では、要求された SQL 値を作成するためのすべての情報を保持する特別な配列が返されます。操作時にパラメーターデータが再帰的に分析され、これらの配列が適切な SQL オブジェクトに置き換えられます。 これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`prepareArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​: `phoneBook` - **Custom type (カスタム型)**​: `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#using-preparestruct-and-preparearray-functions)prepareStruct および prepareArray 関数の使用 以前の Mule バージョンでは ​`createStruct`​ および ​`createArray`​ 関数が提供されましたが、これらは非推奨になりました。これらの関数では JDBC 値がすぐに作成されましたが、その値は、Database Connector 操作で使用された接続と同じ接続を使用して作成されている必要があります。新しい ​`prepareStruct`​ および ​`prepareArray`​ 関数を使用すると、Database Connector ではこれらの JDBC 値の作成を、適切な SQL 接続が使用可能になるまで遅延することができます。​`createArray`​ および ​`createStruct`​ 関数は、以前は Oracle 接続プロバイダーでのみ動作していました。​`preprareStruct`​ および ​`prepareArray`​ 関数は、汎用接続プロバイダーやデータソース参照接続プロバイダーなどのすべての接続プロバイダーと互換性が確保されるようになり、接続の負荷分散とフォールトトレランス URI を正常に設定できます。
非推奨関数 アクティブな関数

Db::createArray(configName, typeName, values): java.sql.Array

Db::prepareArray(typeName, values): java.util.List

Db::createStruct(configName, typeName, properties): java.sql.Struct

Db::prepareStruct(typeName, properties): java.util.List

### [](#パラメーター)パラメーター `Db::prepareArray(typeName, values): java.util.List`​ 関数では、データベースに送信する配列を ​`java.sql.Array`​ として準備します。
パラメーター 型 説明

typeName

String (文字列)

作成する Array (配列) 型の名前。

values

List<Object>

データベースに渡す値。

java.util.List

List<Object>

戻り値は、後で配列を作成するためのすべての情報を保持する不変リストです。

`Db::prepareStruct(typeName, properties): java.util.List`​ 関数では、データベースに送信する​`構造`​を ​`java.sql.Struct`​ として準備します。
パラメーター 型 説明

typeName

String (文字列)

作成する Struct (構造) 型の名前。

properties

List<Object>

データベースに渡すプロパティ。

java.util.List

List<Object>

戻り値は、後で構造を作成するためのすべての情報を保持する不変リストです。

非推奨関数を使用する既存の Mule アプリケーションがある場合、​createStruct​ を ​prepareStruct​ に置き換えて、​createArray​ を ​prepareArray​ に置き換えます。また、最初のパラメーター ​configName​ を関数構造から削除します。
## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `1521` - **User (ユーザー)**​: `SYS as SYSDBA` - **Password (パスワード)**​: `Oradoc_db1` - **Instance (インスタンス)**​: `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナー設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![「Host (ホスト)」、「Port (ポート)」、「User (ユーザー)」、「Password (パスワード)」項目を設定するデータベースのグローバル要素設定。](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 項目を設定するデータベースのグローバル要素詳細設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set payload コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`prepareStruct`​ および ​`prepareArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`prepareStruct`​ および ​`prepareArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::prepareArray("PHONE_NUMBER_ARRAY",[Db::prepareStruct("PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::prepareStruct("PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::prepareArray("PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `prepareStruct`​ では、データベース操作の実行時に ​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトを作成するように Mule に指示します。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) Mule アプリケーションで Database Connector 操作を実行するときに、​`prepareArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトを作成するように Mule に指示します。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`prepareStruct`​ 関数を使用して作成された、各配列が ​`PERSON`​ オブジェクトを表す配列) `prepareStruct`​ および ​`prepareArray`​ 関数では、要求された SQL 値を作成するためのすべての情報を保持する特別な配列が返されます。操作時にパラメーターデータが再帰的に分析され、これらの配列が適切な SQL オブジェクトに置き換えられます。 これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`prepareArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​: `phoneBook` - **Custom type (カスタム型)**​: `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする 次のスクリーンショットは、この例の Anypoint Studio アプリケーションフローを示しています。 ![Anypoint Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​ `HTTP (デフォルト)` - **Host (ホスト)**​ `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​ `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​ `localhost` - **Port (ポート)**​ `1521` - **User (ユーザー)**​ `SYS as SYSDBA` - **Password (パスワード)**​ `Oradoc_db1` - **Instance (インスタンス)**​ `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーの設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\]、\[Instance values (インスタンス値)\] パラメーターを設定する \[Database Config (データベース設定)\] の \[General (一般)\] 設定。](_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 値を設定する 「Database Config (データベース設定)」 の 「advanced (詳細)」 設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set Payload の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`createStruct`​ および ​`createArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::createArray("dbConfig", "PHONE_NUMBER_ARRAY",[Db::createStruct("dbConfig", "PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::createStruct("dbConfig", "PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::createArray("dbConfig", "PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `createStruct`​ 関数では、​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトが作成されます。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Struct`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) `createArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトが作成されます。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Array`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`createStruct`​ 関数を使用して作成された ​`PERSON`​ オブジェクトの配列) これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`createArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​ `phoneBook` - **Custom Type (カスタム型)**​ `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.8/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションを実行およびテストする)Mule アプリケーションを実行およびテストする Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Anypoint Connector の概要](https://docs.mulesoft.com/connectors/introduction/introduction-to-anypoint-connectors) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # ユーザー定義型 (UDT) を使用する Oracle ストアドプロシージャーのコールの例 Oracle では、​_ユーザー定義型 (UDT)_​ と呼ばれるカスタムデータ型を作成できます。次の例は、Oracle データベースの UDT を使用するストアドプロシージャーをコールする、データベース用 Anypoint Connector (Database Connector) の ​**Stored procedure**​ 操作を Mule アプリケーション内で設定する方法を示しています。 このストアドプロシージャーでは次の 2 つのアクションを実行します。 - 100 歳未満の個人の名、姓、年齢、電話番号をテーブルに挿入する - テーブルに追加されているすべての個人の電話番号のリストを返す この例を実行するには、次の操作が必要です。 - UDT、テーブル、およびストアドプロシージャーを作成するスクリプトを実行する - Oracle データベース接続を設定する - Mule アプリケーションを作成する - `createStruct`​ および ​`createArray`​ DataWeave 関数を使用してアプリケーションデータをカスタム型にマップする - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストする ![Studio での Oracle UDT のフロー](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracle-udt-flow.png) Figure 1. UDT を使用する Oracle ストアドプロシージャーのフロー ## [](#udtテーブルおよびストアドプロシージャーの作成)UDT、テーブル、およびストアドプロシージャーの作成 Oracle データベース接続を設定して Mule アプリケーションを作成する前に、任意の SQL クライアントツールを使用して、データベースに次の UDT を作成する ​`.sql`​ スクリプトを実行します。 1. `PEOPLE` 2. `PERSON` 3. `PHONE_NUMBER` 4. `PHONE_NUMBER_ARRAY` 5. `PHONE_BOOK` 一部の UDT には別の UDT が含まれるため、UDT を定義する順序が重要になります。たとえば、オブジェクト型 ​`PERSON`​ は、そのメンバーの ​`PHONE_NUMBER_ARRAY`​ を定義する前に定義する必要があります。 このスクリプトでは、​`HUMANS`​ というテーブルと、​`PROC_INSERT_HUMANS`​ というストアドプロシージャーも作成されます。このストアドプロシージャーの目的は、入力パラメーターとして型 ​`PEOPLE`​ のオブジェクトを受け取って、そのオブジェクトから 100 歳未満の個人を取得してテーブル ​`HUMANS`​ に挿入することです。また、このストアドプロシージャーでは、​`HUMANS`​ テーブルにすでに挿入されているすべての個人の電話番号のリストで構成される型 ​`PHONE_BOOK`​ の出力パラメーターも定義されています。 この UDT、テーブル、およびストアドプロシージャーを作成するために実行するスクリプトは次のとおりです。 ```xml --CREATE CUSTOM DATA TYPES (UDTs) CREATE OR REPLACE TYPE PHONE_NUMBER AS object(areaCode VARCHAR2(10), phoneNumber VARCHAR2(20)); CREATE OR REPLACE TYPE PHONE_NUMBER_ARRAY AS VARRAY(10) OF PHONE_NUMBER; CREATE OR REPLACE TYPE PERSON IS OBJECT(firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY); CREATE OR REPLACE TYPE PEOPLE IS TABLE OF PERSON; CREATE OR REPLACE TYPE PHONE_BOOK AS VARRAY(10) OF VARCHAR2(200); --CREATE TABLE HUMANS; CREATE TABLE HUMANS( firstName VARCHAR(50), surname VARCHAR(50), age NUMBER, phoneNumbers PHONE_NUMBER_ARRAY ); --CREATE STORED PROCEDURE create or replace procedure PROC_INSERT_HUMANS(people IN PEOPLE, contactList OUT PHONE_BOOK) IS phoneBook PHONE_BOOK := PHONE_BOOK(); BEGIN FOR idx IN people.first .. people.last LOOP IF people(idx).age < 100 THEN INSERT INTO HUMANS(firstName, surname, age, phoneNumbers) VALUES(people(idx).firstName, people(idx).surname, people(idx).age, people(idx).phoneNumbers); END IF; END LOOP; FOR humanContact IN (SELECT * FROM HUMANS h, TABLE(h.phoneNumbers) n) LOOP phoneBook.EXTEND(1); phoneBook(phoneBook.COUNT) := humanContact.surname || ',' || humanContact.firstname || ':' || humanContact.areaCode ||'-'|| humanContact.phoneNumber; END LOOP; contactList := phonebook; COMMIT; END PROC_INSERT_HUMANS; ``` ## [](#oracle-データベース接続の設定)Oracle データベース接続の設定 Oracle データベース内で UDT、テーブル、ストアドプロシージャーを作成したら、Anypoint Studio に移動して Oracle データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次のパラメーターを設定します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ 項目を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[Oracle Connection (Oracle 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な Oracle JDBC ドライバーを追加して、次のいずれかを選択します。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次のパラメーターを設定します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `1521` - **User (ユーザー)**​: `SYS as SYSDBA` - **Password (パスワード)**​: `Oradoc_db1` - **Instance (インスタンス)**​: `ORCLCDB` 8. **\[Advanced (詳細)\]**​ タブで ​**\[Column types (列の型)\]**​ 項目を ​**\[Edit inline (インライン編集)\]**​ に設定します。 9. プラス記号 ​**(+)**​ をクリックして、新しい列の型を追加し、すでに作成されているすべての UDT をリストします。 10. 次の値を ​**\[Id\]**​ および ​**\[Type name (型名)\]**​ 項目に指定します。
Id 型名

2003

PEOPLE

2003

PHONE_NUMBER

2008

PERSON

2003

PHONE_ARRAY

2003

PHONE_BOOK

11. **\[Finish (完了)\]**​ をクリックして、​**\[Column Type (列の型)\]**​ ウィンドウを閉じます。 12. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 13. **\[OK\]**​ をクリックします。 次のスクリーンショットは、Studio での HTTP リスナーのグローバル要素設定を示しています。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracleudt-example-1.png) Figure 2. HTTP リスナーの設定 次のスクリーンショットは、Studio でのデータベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースのグローバル要素設定。](_images/database-oracleudt-example-2.png) Figure 3. \[Database Config (データベース設定)\] の \[General (一般)\] 設定 ![「Column types (列の型)」 項目を設定するデータベースのグローバル要素詳細設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracleudt-example-3.png) Figure 4. \[Database Config (データベース設定)\] の \[Advanced (詳細)\] 設定 ## [](#mule-アプリケーションの作成実行テスト)Mule アプリケーションの作成、実行、テスト Oracle データベース接続を設定したら、Mule アプリケーションを作成、実行、およびテストして、ストアドプロシージャーをコールします。 ### [](#http-リスナーと-set-payload-コンポーネントの設定)HTTP リスナーと Set Payload コンポーネントの設定 Mule フローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ 項目を ​`/oracle`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ の右にドラッグします。 このコンポーネントでは、処理のためにストアドプロシージャーに送信する項目のリストを作成します。 5. **\[Value (値)\]**​ 項目で、リストする項目を指定します。 ```xml [{'name':'Anthony J', 'surname':'Crowley', 'age': 6000, 'phoneNumber': {'areaCode':'020', 'phoneNumber': '777'}}, {'name':'A.Z', 'surname':'Fell', 'age': 6000, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '888'}}, {'name':'Adam', 'surname':'Young', 'age': 11, 'phoneNumber':{'areaCode':'046', 'phoneNumber': '666'}}, {'name':'Anathema', 'surname':'Device', 'age': 27, 'phoneNumber':{'areaCode':'020', 'phoneNumber': '123'}}, ] ``` 6. **\[Mime Type (MIME タイプ)\]**​ 項目を ​`application/java`​ に設定します。 ![Set payload コンポーネントの設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracleudt-example-4.png) Figure 5. Set Payload の設定 ### [](#dataweave-関数を使用した-transform-message-コンポーネントの設定)DataWeave 関数を使用した Transform Message コンポーネントの設定 **Transform Message**​ コンポーネントと、アプリケーションデータをカスタムユーザーデータ型の例にマップする ​`createStruct`​ および ​`createArray`​ DataWeave 関数を使用して、Mule アプリケーションの作成を継続します。 1. **\[Transform Message\]**​ コンポーネントを ​**\[Set Payload\]**​ の右にドラッグします。 このコンポーネントでは、ストアドプロシージャーで入力パラメーターとして想定されているデータ型 ​`PEOPLE`​ にマップできるオブジェクトに JSON オブジェクトが変換されます。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - Prepare UDT`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで ​**\[Edit Current Target (現在の対象を編集)\]**​ ボタンをクリックします。 4. **\[Selection dialog (選択ダイアログ)\]**​ ボックスで ​**\[Output (出力)\]**​ 項目を ​`Variable`​、​**\[Variable name (変数名)\]**​ を ​`in_people_tab`​ に設定し、​**\[OK\]**​ をクリックします。 5. **\[Output (出力)\]**​ 項目で、​`createStruct`​ および ​`createArray`​ 関数が含まれる次の DataWeave 式を指定します。 ```DataWeave %dw 2.0 output application/java fun toPhoneNumberArray(phoneNumber) = Db::createArray("dbConfig", "PHONE_NUMBER_ARRAY",[Db::createStruct("dbConfig", "PHONE_NUMBER", [phoneNumber.areaCode, phoneNumber.phoneNumber])]) fun toPerson(person) = Db::createStruct("dbConfig", "PERSON", [person.name, person.surname, person.age, toPhoneNumberArray(person.phoneNumber)]) --- Db::createArray("dbConfig", "PEOPLE", payload map (item, index) -> ( toPerson(item) ) ) ``` ![Transform Message の設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracleudt-example-6.png) Figure 6. Transform Message の設定 `createStruct`​ 関数では、​`Name`​ 型および対応するプロパティに基づいて JDBC 構造オブジェクトが作成されます。この例では、型 ​`PERSON`​ と ​`PHONE_NUMBER`​ が構造オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Struct`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Struct`​ 型の名前を含む文字列 (この例では ​`PERSON`​ または ​`PHONE_NUMBER`​) - `values` `Struct`​ プロパティに準拠する値の配列 (この例では ​`PHONE_NUMBER`​、​`['046', '666']`​) `createArray`​ 関数では、​`Array`​ 型に基づいて JDBC 配列オブジェクトが作成されます。この例では、型 ​`PHONE_NUMBER_ARRAY`​、​`PEOPLE`​、および ​`PHONE_BOOK`​ が配列オブジェクトです。この関数では、次のパラメーターがこの順序で想定されます。 - `configName` `Array`​ 型を作成する設定の名前を含む文字列 (この例では ​`dbConfig`​) - `typeName` 作成する ​`Array`​ 型の名前を含む文字列 (この例では ​`PEOPLE`​ または ​`PHONE_NUMBER_ARRAY`​) - `values` `Array`​ 型に準拠する値の配列 (この例では ​`createStruct`​ 関数を使用して作成された ​`PERSON`​ オブジェクトの配列) これらの関数を組み合わせて使用して、サブタイプまたはネストされた型を作成できます。この例では、型 ​`PERSON`​ に ​`PHONE_NUMBER_ARRAY`​ オブジェクトが含まれます。同時に型 ​`PHONE_NUMBER_ARRAY`​ が ​`PHONE_NUMBER`​ の配列として定義されます。 また、​`Array`​ 型に基づいて UDT に一致させるときに ​`createArray`​ 関数を使用する場合、複合型に合わせてこれらの関数を組み合わせることができます。 ### [](#stored-procedure-操作の設定)Stored Procedure 操作の設定 Database Connector の ​**Stored Procedure**​ 操作を使用して、UDT を使用する Oracle ストアドプロシージャーをコールします。 1. **\[Stored procedure\]**​ 操作を ​**\[Transform Message\]**​ の右にドラッグします。 この操作では、Database Connector を使用してストアドプロシージャーがコールされます。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`dbConfig`​ グローバル設定を選択します。 3. **\[SQL Query Text (SQL クエリテキスト)\]**​ 項目に「​`{ call proc_insert_humans(:people, :phoneBook) }`​」と入力します。 4. **\[Input Parameters (入力パラメーター)\]**​ 項目に「​`{ people: vars.in_people_tab}`​」と入力します このステップでは、​`in_people_tab`​ という変数に保存された変換の出力が入力パラメーターにマップされます。 5. **\[Output Parameters (出力パラメーター)\]**​ 項目で ​`Edit inline`​ を選択し、プラス記号 (​**+**​) をクリックしてカスタムパラメーターを設定します。 - **Key (キー)**​: `phoneBook` - **Custom type (カスタム型)**​: `PHONE_BOOK` ![ストアドプロシージャーの設定](/mulesoft/current/ja-jp/db-connector/1.9/_images/database-oracleudt-example-5.png) Figure 7. ストアドプロシージャーの設定 1. 2 つ目の ​**\[Transform Message\]**​ コンポーネントを ​**\[Stored Procedure\]**​ の右にドラッグします。 2. Studio キャンバスでコンポーネントをダブルクリックして、名前を ​`Transform Message - response to JSON`​ に設定します。 3. コンポーネントの ​**\[Output (出力)\]**​ ソースコードビューで、次の DataWeave 式を設定します。 ```DataWeave %dw 2.0 output application/json --- payload ``` ### [](#mule-アプリケーションの実行およびテスト)Mule アプリケーションの実行およびテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. ターミナルで curl コマンド「​`curl localhost:8081/oracle`​」を使用して、アプリケーションをテストします。 このストアドプロシージャーでは、テーブル ​`HUMANS`​ に追加されているすべての個人の電話番号のリストが返されます。 ## [](#udt-を使用する-oracle-ストアドプロシージャーをコールするための-xml)UDT を使用する Oracle ストアドプロシージャーをコールするための XML この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ( toPerson(item) ) ) ]]> ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.9/database-connector-examples) - [MuleSoft ヘルプセンター](https://help.mulesoft.com) # 一括操作の実行例 データベース用 Anypoint Connector (Database Connector) では、データを一括管理できるようにする ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作がサポートされています。これにより、1 つの挿入、更新、または削除操作を何度も実行する場合よりもパフォーマンスが向上します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、一括操作ではキー - 値のペアのリストとして受け取ることを想定しています。一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリが 1 回だけ解析される - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである - ネットワークオーバーヘッドを最小限に抑えられる - RDBMS で一括操作を実行できる。 一括操作の一部のステートメントが正常に実行されても、他のステートメントがエラーとなることがあります (たとえば、​**Bulk insert**​ 操作で 100 行のうち 1 行の挿入に失敗すると、エラーの内容を示す例外が 1 件スローされます)。実行を直ちに中止して残りの操作をすべて無視するか、または残りのステートメントの実行を継続するかは、ドライバーが決定します。どちらの場合でも、エラーが発生した場合には、Mule アプリケーションログでエラーの原因を確認してください。 次の例は、MySQL データベースで顧客データと商品データを挿入、更新、削除する操作を Mule アプリケーションで設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `CUSTOMERS`​ と ​`PRODUCTS`​ という 2 つのテーブルを作成する SQL ステートメントを実行します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![Bulk insert、Bulk update、Bulk delete のフロー](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-bulkoperations-flow.png) ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`CUSTOMERS`​ と ​`PRODUCTS`​ というテーブルを作成し、4 件の商品データを ​`PRODUCTS`​ テーブルに挿入します。 ```sql CREATE DATABASE DEMO; USE DEMO; CREATE TABLE CUSTOMERS ( ID bigint AUTO_INCREMENT PRIMARY KEY, NAME varchar(30) NOT NULL, LAST_NAME varchar(30) NOT NULL ); CREATE TABLE PRODUCTS ( ID bigint AUTO_INCREMENT PRIMARY KEY, PRICE numeric(8, 2) NOT NULL, ITEM varchar(30) NOT NULL ); INSERT INTO PRODUCTS (PRICE, ITEM) values (50.0, 'shampoo'); INSERT INTO PRODUCTS (PRICE, ITEM) values (150.5, 'olive oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (11, 'coconut oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (133, 'wine'); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mulesoft` - **Database (データベース)**​: `demo` 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 9. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.12/_images/database-querysingle-example-1.png) 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定](_images/database-bulk-example-2.png) ## [](#最初のフローの作成)最初のフローの作成 最初のフローは、顧客の項目を ​`CUSTOMERS`​ テーブルに一括挿入します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/insert`​ に設定します。 4. **\[Bulk insert\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ に次の式を入力します。 `[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]` 7. **\[SQL Query text (SQL クエリテキスト)\]**​ に以下を入力します。 `INSERT INTO CUSTOMERS (NAME, LAST_NAME) values (:name, :lastName)` ## [](#2-つ目のフローの作成)2 つ目のフローの作成 2 つ目のフローは、​`PRODUCTS`​ テーブルで商品の価格を一括更新します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`update`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ discountRate: 0.1, price: 50 }, { discountRate: 0.2, price: 150.5 }] ``` 6. **\[Bulk update\]**​ 操作を ​**\[Set Payload\]**​ ソースの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `UPDATE PRODUCTS SET PRICE = PRICE * :discountRate WHERE PRICE = :price` ## [](#3-つ目のフローを作成する)3 つ目のフローを作成する 3 つ目のフローは、​`PRODUCTS`​ テーブルから商品データを一括削除します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/delete`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ price: 11 }, { price: 133 }] ``` 6. **\[Bulk delete\]**​ 操作を ​**\[Set Payload\]**​ コンポーネントの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `DELETE FROM PRODUCTS WHERE PRICE = :price` ## [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. **\[Run (実行)\] > \[Run (実行)\]**​ をクリックしてアプリケーションをデプロイします。 3. インターネットブラウザーで、次の CURL コマンドを実行してアプリケーションをテストします。 `curl [http://localhost:8081/insert](http://localhost:8081/insert)` `curl [http://localhost:8081/update](http://localhost:8081/update)` `curl [http://localhost:8081/delete](http://localhost:8081/delete)` ## [](#mule-アプリケーションの-xml-の例)Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.12/database-connector-examples) # 一括操作の実行例 データベース用 Anypoint Connector (Database Connector) では、データを一括管理できるようにする ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作がサポートされています。これにより、1 つの挿入、更新、または削除操作を何度も実行する場合よりもパフォーマンスが向上します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、一括操作ではキー - 値のペアのリストとして受け取ることを想定しています。一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリが 1 回だけ解析される - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである - ネットワークオーバーヘッドを最小限に抑えられる - RDBMS で一括操作を実行できる。 一括操作の一部のステートメントが正常に実行されても、他のステートメントがエラーとなることがあります (たとえば、​**Bulk insert**​ 操作で 100 行のうち 1 行の挿入に失敗すると、エラーの内容を示す例外が 1 件スローされます)。実行を直ちに中止して残りの操作をすべて無視するか、または残りのステートメントの実行を継続するかは、ドライバーが決定します。どちらの場合でも、エラーが発生した場合には、Mule アプリケーションログでエラーの原因を確認してください。 次の例は、MySQL データベースで顧客データと商品データを挿入、更新、削除する操作を Mule アプリケーションで設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `CUSTOMERS`​ と ​`PRODUCTS`​ という 2 つのテーブルを作成する SQL ステートメントを実行します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![Bulk insert、Bulk update、Bulk delete のフロー](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-bulkoperations-flow.png) ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`CUSTOMERS`​ と ​`PRODUCTS`​ というテーブルを作成し、4 件の商品データをテーブル ​`PRODUCTS`​ に挿入します。 ```sql CREATE DATABASE DEMO; USE DEMO; CREATE TABLE CUSTOMERS ( ID bigint AUTO_INCREMENT PRIMARY KEY, NAME varchar(30) NOT NULL, LAST_NAME varchar(30) NOT NULL ); CREATE TABLE PRODUCTS ( ID bigint AUTO_INCREMENT PRIMARY KEY, PRICE numeric(8, 2) NOT NULL, ITEM varchar(30) NOT NULL ); INSERT INTO PRODUCTS (PRICE, ITEM) values (50.0, 'shampoo'); INSERT INTO PRODUCTS (PRICE, ITEM) values (150.5, 'olive oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (11, 'coconut oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (133, 'wine'); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mulesoft` - **Database (データベース)**​: `demo` 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 9. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.13/_images/database-querysingle-example-1.png) 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-bulk-example-2.png) ## [](#最初のフローの作成)最初のフローの作成 最初のフローは、顧客の項目を ​`CUSTOMERS`​ テーブルに一括挿入します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/insert`​ に設定します。 4. **\[Bulk insert\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ に次の式を入力します。 `[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]` 7. **\[SQL Query text (SQL クエリテキスト)\]**​ に以下を入力します。 `INSERT INTO CUSTOMERS (NAME, LAST_NAME) values (:name, :lastName)` ## [](#2-つ目のフローの作成)2 つ目のフローの作成 2 つ目のフローは、​`PRODUCTS`​ テーブルで商品の価格を一括更新します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`update`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ discountRate: 0.1, price: 50 }, { discountRate: 0.2, price: 150.5 }] ``` 6. **\[Bulk update\]**​ 操作を ​**\[Set Payload\]**​ ソースの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `UPDATE PRODUCTS SET PRICE = PRICE * :discountRate WHERE PRICE = :price` ## [](#3-つ目のフローを作成する)3 つ目のフローを作成する 3 つ目のフローは、​`PRODUCTS`​ テーブルから商品データを一括削除します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/delete`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ price: 11 }, { price: 133 }] ``` 6. **\[Bulk delete\]**​ 操作を ​**\[Set Payload\]**​ コンポーネントの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `DELETE FROM PRODUCTS WHERE PRICE = :price` ## [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. **\[Run (実行)\] > \[Run (実行)\]**​ をクリックしてアプリケーションをデプロイします。 3. インターネットブラウザーで、次の CURL コマンドを実行してアプリケーションをテストします。 `curl [http://localhost:8081/insert](http://localhost:8081/insert)` `curl [http://localhost:8081/update](http://localhost:8081/update)` `curl [http://localhost:8081/delete](http://localhost:8081/delete)` ## [](#mule-アプリケーションの-xml-の例)Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.13/database-connector-examples) # 一括操作の実行例 データベース用 Anypoint Connector (Database Connector) では、データを一括管理できるようにする ​**Bulk insert**​、​**Bulk update**​、​**Bulk delete**​ 操作がサポートされています。これにより、1 つの挿入、更新、または削除操作を何度も実行する場合よりもパフォーマンスが向上します。 これらの操作は、対応する単一操作と似ていますが、入力パラメーターをキー - 値のペアで受け取るのではなく、一括操作ではキー - 値のペアのリストとして受け取ることを想定しています。一括操作を実行すれば、不要なステップを回避して次の利点を得ることができます。 - クエリが 1 回だけ解析される - 実行されるステートメントは 1 つのみのため、必要なデータベース接続は 1 つのみである - ネットワークオーバーヘッドを最小限に抑えられる - RDBMS で一括操作を実行できる。 一括操作の一部のステートメントが正常に実行されても、他のステートメントがエラーとなることがあります (たとえば、​**Bulk insert**​ 操作で 100 行のうち 1 行の挿入に失敗すると、エラーの内容を示す例外が 1 件スローされます)。実行を直ちに中止して残りの操作をすべて無視するか、または残りのステートメントの実行を継続するかは、ドライバーが決定します。どちらの場合でも、エラーが発生した場合には、Mule アプリケーションログでエラーの原因を確認してください。 次の例は、MySQL データベースで顧客データと商品データを挿入、更新、削除する操作を Mule アプリケーションで設定する方法を示しています。この例を実行するには、次の操作が必要です。 - `CUSTOMERS`​ と ​`PRODUCTS`​ という 2 つのテーブルを作成する SQL ステートメントを実行します。 - SQL データベース接続を設定します。 - Mule アプリケーションを作成します。 - アプリケーションを実行し、curl コマンドを使用してアプリケーションをテストします。 ![Bulk insert、Bulk update、Bulk delete のフロー](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-bulkoperations-flow.png) ## [](#データベースのテーブルの作成)データベースのテーブルの作成 SQL データベース接続を設定して Mule アプリケーションを作成する前に、次の SQL ステートメントを実行して ​`CUSTOMERS`​ と ​`PRODUCTS`​ というテーブルを作成し、4 件の商品データを ​`PRODUCTS`​ テーブルに挿入します。 ```sql CREATE DATABASE DEMO; USE DEMO; CREATE TABLE CUSTOMERS ( ID bigint AUTO_INCREMENT PRIMARY KEY, NAME varchar(30) NOT NULL, LAST_NAME varchar(30) NOT NULL ); CREATE TABLE PRODUCTS ( ID bigint AUTO_INCREMENT PRIMARY KEY, PRICE numeric(8, 2) NOT NULL, ITEM varchar(30) NOT NULL ); INSERT INTO PRODUCTS (PRICE, ITEM) values (50.0, 'shampoo'); INSERT INTO PRODUCTS (PRICE, ITEM) values (150.5, 'olive oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (11, 'coconut oil'); INSERT INTO PRODUCTS (PRICE, ITEM) values (133, 'wine'); ``` ## [](#mysql-データベース接続の設定)MySQL データベース接続の設定 テーブルを作成したら、Anypoint Studio に移動して MySQL データベース接続を設定します。 1. Studio で新しい Mule プロジェクトを作成します。 2. **\[Global Elements (グローバル要素)\]**​ ビューに移動します。 3. **\[Create (作成)\]**​ をクリックして、​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 4. **\[Filter (検索条件)\]**​ 項目に「​`http`​」と入力し、​**\[HTTP Listener config (HTTP リスナー設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 この設定は、Mule アプリケーションフローを開始する HTTP ​**Listener**​ ソース用です。 5. **\[HTTP Listener config (HTTP リスナー設定)\]**​ ウィンドウで、次の項目に入力します。 - **Protocol (プロトコル)**​: `HTTP (Default)` - **Host (ホスト)**​: `All Interfaces [0.0.0.0] (default)` - **Port (ポート)**​: `8081` 1. **\[OK\]**​ をクリックします。 2. **\[Global Elements (グローバル要素)\]**​ ビューで ​**\[Create (作成)\]**​ をクリックして ​**\[Choose Global Type (グローバル種別の選択)\]**​ ビューを開きます。 3. **\[Filter (検索条件)\]**​ 項目に「​`database`​」と入力し、​**\[Database Config (データベース設定)\]**​ を選択して ​**\[OK\]**​ をクリックします。 4. **\[Database Config (データベース設定)\]**​ ウィンドウで ​**\[Name (名前)\]**​ を ​`dbConfig`​ に設定します。 5. **\[Connection (接続)\]**​ 項目で ​**\[MySQL Connection (MySQL 接続)\]**​ を選択します。 6. **\[Configure (設定)\]**​ をクリックし、必要な MySQL JDBC ドライバーを追加して、次のいずれかを選択します。 - **Add recommended library (推奨されるライブラリを追加)**​ 推奨されるライブラリをインストールします。 - **Use local file (ローカルファイルを使用)**​ ローカルファイルを使用してライブラリをインストールします。 - **Add Maven dependency (Maven 連動関係を追加)**​ Maven 連動関係をインストールしてプロジェクトに追加します。 7. **\[Connection (接続)\]**​ セクションで、次の項目に入力します。 - **Host (ホスト)**​: `localhost` - **Port (ポート)**​: `3306` - **User (ユーザー)**​: `root` - **Password (パスワード)**​: `mulesoft` - **Database (データベース)**​: `demo` 8. **\[Test Connection (接続をテスト)\]**​ をクリックして、Mule がデータベースに接続できることを確認します。 9. **\[OK\]**​ をクリックします。 ![HTTP リスナーのグローバル要素設定](/mulesoft/current/ja-jp/db-connector/1.14/_images/database-querysingle-example-1.png) 次のスクリーンショットは、データベースのグローバル要素設定を示しています。 ![「\[Host (ホスト)\]、\[Port (ポート)\]、\[User (ユーザー)\]、\[Password (パスワード)\] 項目を設定するデータベースの一般設定。」](_images/database-bulk-example-2.png) ## [](#最初のフローの作成)最初のフローの作成 最初のフローは、顧客の項目を ​`CUSTOMERS`​ テーブルに一括挿入します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択してキャンバスにドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/insert`​ に設定します。 4. **\[Bulk insert\]**​ 操作を ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 6. **\[Input Parameters (入力パラメーター)\]**​ に次の式を入力します。 `[{'id': 2, 'name': 'George', 'lastName': 'Costanza'}, {'id': 3, 'name': 'Cosmo', 'lastName': 'Kramer'}]` 7. **\[SQL Query text (SQL クエリテキスト)\]**​ に以下を入力します。 `INSERT INTO CUSTOMERS (NAME, LAST_NAME) values (:name, :lastName)` ## [](#2-つ目のフローの作成)2 つ目のフローの作成 2 つ目のフローは、​`PRODUCTS`​ テーブルで商品の価格を一括更新します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`update`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ discountRate: 0.1, price: 50 }, { discountRate: 0.2, price: 150.5 }] ``` 6. **\[Bulk update\]**​ 操作を ​**\[Set Payload\]**​ ソースの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `UPDATE PRODUCTS SET PRICE = PRICE * :discountRate WHERE PRICE = :price` ## [](#3-つ目のフローを作成する)3 つ目のフローを作成する 3 つ目のフローは、​`PRODUCTS`​ テーブルから商品データを一括削除します。このフローを作成する手順は、次のとおりです。 1. **\[Mule Palette (Mule パレット)\]**​ ビューで、\[HTTP\] の ​**\[Listener\]**​ ソースを選択して、最初のフローの下にドラッグします。 このソースは受信 HTTP メッセージ属性をリスンすることでフローを開始します。 2. **\[Connector configuration (コネクタ設定)\]**​ 項目で ​`HTTP_Listener_config`​ グローバル設定を選択します。 3. **\[Path (パス)\]**​ を ​`/delete`​ に設定します。 4. **\[Set Payload\]**​ コンポーネントを ​**\[Listener\]**​ ソースの右にドラッグします。 5. **\[Value (値)\]**​ に次の式を入力します。 ```text [{ price: 11 }, { price: 133 }] ``` 6. **\[Bulk delete\]**​ 操作を ​**\[Set Payload\]**​ コンポーネントの右にドラッグします。 7. **\[Connector configuration (コネクタ設定)\]**​ で ​`Database_Config`​ を選択します。 8. **\[SQL Query text (SQL クエリテキスト)\]**​ に次の式を入力します。 `DELETE FROM PRODUCTS WHERE PRICE = :price` ## [](#mule-アプリケーションの実行とテスト)Mule アプリケーションの実行とテスト Mule アプリケーションを実行およびテストする手順は、次のとおりです。 1. Studio でプロジェクトを保存します。 2. **\[Run (実行)\] > \[Run (実行)\]**​ をクリックしてアプリケーションをデプロイします。 3. インターネットブラウザーで、次の CURL コマンドを実行してアプリケーションをテストします。 `curl [http://localhost:8081/insert](http://localhost:8081/insert)` `curl [http://localhost:8081/update](http://localhost:8081/update)` `curl [http://localhost:8081/delete](http://localhost:8081/delete)` ## [](#mule-アプリケーションの-xml-の例)Mule アプリケーションの XML の例 この例のフローをすばやく Mule アプリケーションに読み込むには、次のコードを Studio XML エディターに貼り付けます。 ```xml ``` ## [](#関連情報)関連情報 - [Database Connector の例](https://docs.mulesoft.com/jp/db-connector/1.14/database-connector-examples)