データベース接続の設定

データベース用 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 ファイル
    <bean id="jdbcDataSource" class="org.enhydra.jdbc.standard.StandardDataSource"
     destroy-method="shutdown">
       <property name="driverName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
       <property name="url" value="jdbc:derby:muleEmbeddedDB;create=true"/>
    </bean>
  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 設定データソース
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]​ をクリックします。

次のスクリーンショットはこの設定を示しています。

データソース参照接続のグローバル設定
Figure 2. データソース参照接続

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

<spring:config name="datasource" files="datasource-config.xml" />

<db:config name="Database_Config">
   <db:data-source-connection dataSourceRef="jdbcDataSource" />
</db:config>

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 接続のグローバル設定
Figure 3. Derby 接続の設定

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

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

汎用接続の設定

次のデータベースに接続する場合は、​[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 の設定を示しています。

汎用接続のグローバル設定
Figure 4. 汎用接続の設定

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

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

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 接続のグローバル設定
Figure 5. Microsoft SQL Server 接続の設定

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

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

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

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 接続のグローバル設定
Figure 6. MySQL 接続の設定

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

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

Oracle 接続の設定

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 接続のグローバル設定
Figure 7. Oracle 接続の設定

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

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

JDBC ドライバーの設定

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

  1. Studio で、次のいずれかのオプションを使用してドライバーを追加できます。

    • [Database Config (データベース設定)]​ ウィンドウで ​[Configure (設定)]​ をクリックし、​[Add Maven dependency (Maven 連動関係を追加)]​を選択して、連動関係を選択します。

      Maven 連動関係の選択
      Figure 8. Maven 連動関係の選択
    • 連動関係をプロジェクトの ​pom.xml​ ファイルに直接追加します。

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

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

接続プールの設定

接続の確立には、コネクタ、リレーショナルデータベース管理システム (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 (プーリングプロファイル)] 項目の設定
Figure 9. プーリングプロファイルの設定

データベースには ​<db:pooling-profile>​ 要素などの特別なプーリング属性があるため、XML エディターでは、設定で標準の Mule ​<pooling-profile>​ 要素ではなく ​preparedStatementCacheSize​ 要素を使用します。

<db:config name="Database_Config">
    <db:my-sql-connection database="mozart_test" host="${host}" password="${password}" port="${port}" user="${user}">
        <db:pooling-profile acquireIncrement="1" maxPoolSize="5" maxWait="0" maxWaitUnit="SECONDS" minPoolSize="0" preparedStatementCacheSize="5"/>
        <db:additional-properties>
            <db:additional-property key="checkoutTimeout" value="1000"/>
            <db:additional-property key="idleConnectionTestPeriod" value="2" />
        </db:additional-properties>
    </db:my-sql-connection>
</db:config>

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 データベース
Figure 10. TNS 設定を使用した Oracle

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

<db:config name="Database_Config">
    <db:generic-connection driverClassName="oracle.jdbc.driver.OracleDriver"
    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})))` and *Driver class name* to `oracle.jdbc.driver.OracleDriver"/>
</db:config>