Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
2014 年 5 月にリリースされた Anypoint Studio (3.5.0 ランタイム) と、その新しい Database Connector では、JDBC Connector が非推奨になりました。JDBC Connector を使用するアプリケーションは、3.5.0 Enterprise ランタイムで引き続き機能しますが、このコネクタを Studio パレットでアプリケーションに追加することはできなくなりました。 新しく設計された機能を利用するには、『Database Connector』 のドキュメントを参照してください。 |
JDBC Connector は、トランスポートチャネルを実装して、Mule アプリケーションを JDBC 互換のデータベースに接続します。JDBC エンドポイントは、一方向のエクスチェンジパターンのインバウンドエンドポイントや、一方向のエクスチェンジパターンまたは要求-応答エクスチェンジパターンに設定されたアウトバウンドエンドポイントとして実装できます。
JDBC エンドポイントを使用して、データベースレコードで create、read、update、delete (通常、頭字語の CRUD で呼ばれる) 操作を実行します。EE バージョンを使用している場合、データベースに保存されているプロシージャー (新しいテーブルの動的な作成など) を呼び出すこともできます。
JDBC Connector では、マルチリソーストランザクションがサポートされています。マルチリソーストランザクションは、『Database Connector』 でもサポートされています。『XA トランザクション』を使用して、このユースケースを処理することも検討してください。 |
Anypoint Studio で、Studio タスクバーの Exchange アイコンをクリックします。
Anypoint Exchange で [Login (ログイン)] をクリックします。
コネクタを検索して [Install (インストール)] をクリックします。
画面の指示に従ってコネクタをインストールします。
Studio の更新がある場合、右下隅にメッセージが表示されます。メッセージをクリックすると、更新をインストールできます。
JDBC エンドポイント設定は、3 つのフェーズで構成されています。
Mule フロー内の JDBC エンドポイントを配置する場所を決定し、パレットから、Mule フローを構成するプロセッサーのシーケンスの適切な場所に JDBC エンドポイントをドラッグします。
JDBC エンドポイントをフローの先頭に配置する場合、[polling frequency (ポーリング頻度)] 項目で指定した間隔でクエリを実行してフローをトリガーするポーリングインバウンドエンドポイント (メッセージソースなど) として機能します。これは、インバウンドエンドポイントの一方向のエクスチェンジパターンに対応する必要があります。
JDBC インバウンドエンドポイントは、一方向のエクスチェンジパターンにのみ設定できます。JDBC アウトバウンドエンドポイントは、一方向のエクスチェンジパターンまたは要求-応答エクスチェンジパターンのいずれかに設定できます。エクスチェンジパターンについての詳細は、「Anypoint Studio の基礎」を参照してください。 |
JDBC プロセッサーをフローの中間または末尾に配置する場合、アウトバウンドエンドポイント (SQL コードを実行するプロセッサー) として機能します。SQL ステートメントによって、返されるデータ型が異なります。たとえば、クエリではマップのリスト、ストアドプロシージャー (EE でのみ使用可能) ではマップが返され、他の更新ステートメントでは何も返されません。
メッセージフローキャンバスの JDBC アイコンをダブルクリックして開くことができるプロパティペインで、さまざまなタブの項目の値を入力して JDBC エンドポイントを設定します。
プロパティエディターには、5 つのタブがあります (詳細は下記参照)。
プロパティ | 説明 |
---|---|
Display Name (表示名) |
デフォルトは汎用エンドポイント名 (この場合は JDBC) です。エンドポイントの特定の役割が反映されるように |
Exchange-Pattern (エクスチェンジパターン) |
インバウンドまたはアウトバウンドエンドポイントを一方向 (デフォルト) に設定すると、JDBC エンドポイントは受信データをフローの次のプロセッサーに送信します。要求-応答 (アウトバウンド JDBC エンドポイントでのみ可能) に設定すると、エンドポイントはデータを送信する前に応答を待機します。 |
Query Key (クエリキー) |
データベースにアクセスするときに使用するクエリを指定します。 |
SQL Statement (SQL ステートメント) |
詳細は、SQL Statement (SQL ステートメント)を参照してください。 |
Transaction Type (トランザクション種別) |
データベースリソースにアクセスする方法をドロップダウンリストから選択します。使用可能なオプションは、[No Transactions (トランザクションなし)]、[XA Transactions (XA トランザクション)]、[JDBC Transactions (JDBC トランザクション)] です。 |
Transaction Action (トランザクションアクション) |
トランザクションでデータベースにアクセスする方法をドロップダウンリストから選択します。 |
Transaction Timeout (トランザクションタイムアウト) |
アクションが完了するまで待機するタイムアウト (ミリ秒) を入力します。 |
Interact with External (外部とやりとり) |
Mule が Mule の外部で始まるトランザクションとやりとりできるようにする場合は、チェックボックスをオンにします。たとえば、外部トランザクションがアクティブな場合、BEGIN_OR_JOIN が追加されるため、ALWAYS_BEGIN で例外がスローされます。 |
フロー設定時に Mule Enterprise Edition ランタイムが指定された場合のにみ [General (一般)] タブの [Query (クエリ)] パネルがこのパネル (下記参照) に置き換わります。
このパネルを使用すると、SQL クエリやストアドプロシージャーを指定しやすくなります。ストアドプロシージャーを選択する手順は、次のとおりです。
JDBC エンドポイントのプロパティエディターにある [General (一般)] タブの [SQL Statement (SQL ステートメント)] パネルの [Key (キー)] テキストボックスの右側にある緑の「プラス」アイコンをクリックします。
[Query (クエリ)] ダイアログボックス (下記参照) が表示されたら、識別するストアドプロシージャーのキーを [Query Key (クエリキー)] テキストボックス入力します。
大きな [Query (クエリ)] テキストボックスに、実行する SQL ステートメントを入力します。
項目のエントリに問題がなければ、[Finish (完了)] をクリックしてコミットします。
プロパティ | 説明 |
---|---|
Address (住所) |
このエンドポイントのアドレス (jdbc://getTest?type=1 など) を入力します。 |
Response Timeout (応答タイムアウト) |
エンドポイントが応答を待機する必要がある時間 (ミリ秒) を指定します。デフォルトは 1000 ミリ秒です。 |
Encoding (エンコード) |
ドロップダウンリストから、メッセージデータに使用する文字セット。(UTF-8 など)。 |
Disable Transport Transformer (トランスポートトランスフォーマーを無効化) |
エンドポイントのデフォルトの応答トランスポートを使用しない場合、このボックスをオンにします。 |
MIME Type (MIME タイプ) |
ドロップダウンリストから、このエンドポイントでサポートされる形式の 1 つを選択します。 |
Query Timeout (クエリタイムアウト) |
(アウトバウンド JDBC エンドポイントにのみ適用)。JDBC エンドポイントで SQL ステートメントから応答が返されるのを待機する時間 (ミリ秒) を指定します。 |
Polling Frequency (ポーリング頻度) |
(インバウンド JDBC エンドポイントにのみ適用)。受信メッセージをチェックする頻度を指定します。デフォルト値は 1000 ms です。 |
プロパティ | 説明 |
---|---|
Endpoint Reference (エンドポイント参照) |
ドロップダウンリストを使用して、以前に設定したグローバルエンドポイント参照を選択します。このエンドポイント種別のグローバル要素を作成していない場合、このウィンドウから [Add (追加)] をクリックして作成できます。以前に作成したグローバル要素を変更するには、[Edit (編集)] をクリックします。 |
Connector Reference (コネクタリファレンス) |
ドロップダウンリストを使用して、このエンドポイントの以前に設定したコネクタを選択します。このエンドポイント種別のコネクタを作成していない場合、このウィンドウから [Add (追加)] をクリックして作成できます。以前に作成したグローバル要素を変更するには、[Edit (編集)] をクリックします。グローバル JDBC Connector の使用可能な種別を次に示します。
|
Request Transformer References (要求トランスフォーマー参照) |
トランスポートに送信される前に要求に適用する同期トランスフォーマーのリストを入力します。 |
Response Transformer References (応答トランスフォーマー参照) |
トランスポートから返される前に応答に適用する同期トランスフォーマーのリストを入力します。 |
このコネクタには 1 つの追加プロパティがあります。現在、このプロパティは、Studio でコネクタリファレンスを設定するときにグローバルレベルでのみ設定できます。
このプロパティを |
以下で構成されるこのエンドポイントの SQL クエリを入力できます。
キー
値
値参照 (省略可能)
DataMapper と SQL ステートメントの反復実行: DataMapper を使用して ArrayList をアプリケーションの JDBC エンドポイントにフィードする場合、Mule は DataMapper から出力される ArrayList の項目ごとに JDBC ステートメントを 1 回実行することに注意してください。これは想定される動作です。ペイロードがリストで、SQL ステートメントにパラメーターが含まれる場合、Mule は、挿入される値がリストに含まれていて、リストで BatchUpdateSqlStatementStrategy が使用されると想定します。この動作をさらに詳しく調べるには、次のクラスにアクセスします。
com.mulesoft.mule.transport.jdbc.sqlstrategy.EESqlStatementStrategyFactory
(SQL およびペイロードの種別に基づいて SqlStatementStrategy を作成する)
com.mulesoft.mule.transport.jdbc.sqlstrategy.BatchUpdateSqlStatementStrategy
XML エディターを使用した JDBC エンドポイントのプロパティの設定についての詳細は、「JDBC Transport Reference (JDBC トランスポートリファレンス)」を参照してください。