第13章 Agroal でのデータソース管理

13.1. Agroal データソースサブシステム

新しい datasources-agroal サブシステムが JBoss EAP 7.2 に導入されました。これは、Agroal プロジェクトによる、新しい高パフォーマンスな直接接続プールです。現在の JCA ベースの datasources サブシステムの代わりに使用することができます。

datasources-agroal サブシステムはデフォルトでは使用できません。 この新しい実装を 有効 にして使用する必要があります。

重要

datasources-agroal サブシステムはテクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

13.2. Agroal データソースサブシステムの有効化

datasources-agroal サブシステムは、デフォルトの JBoss EAP 設定では有効になっていません。以下の管理 CLI コマンドを使用して有効にします。

  1. 拡張を追加します。

    /extension=org.wildfly.extension.datasources-agroal:add
  2. サブシステムを追加します。

    /subsystem=datasources-agroal:add
  3. 変更を反映するためにサーバーをリロードします。

    reload

これにより、サーバー設定ファイルに以下の XML が追加されます。

<server xmlns="urn:jboss:domain:8.0">
  <extensions>
    ...
    <extension module="org.wildfly.extension.datasources-agroal"/>
    ...
  </extensions>
  ...
  <subsystem xmlns="urn:jboss:domain:datasources-agroal:1.0"/>
  ...
</server>

13.3. Agroal データソースに対するコアモジュールとしての JDBC ドライバーのインストール

JBoss EAP でアプリケーションが使用する Agroal データソースを定義する前に、最初に適切な JDBC ドライバーをインストールする必要があります。

Agroal データソースに対して JDBC ドライバーをコアモジュールとしてインストールするには、最初に JDBC ドライバーをコアモジュールとして追加 し、datasources-agroal サブシステムで JDBC ドライバーを登録 する必要があります。

13.3.1. JDBC ドライバーをコアモジュールとして追加

以下の手順に従うと、管理 CLI を使用して JDBC ドライバーをコアモジュールとしてインストールすることができます。

  1. JDBC ドライバーをダウンロードします。

    データベースのベンダーから適切な JDBC ドライバーをダウンロードします。一般的なデータベースの JDBC ドライバーをダウンロードできる場所については、「JDBC ドライバーのダウンロードできる場所」を参照してください。

    JDBC ドライバーの JAR ファイルが ZIP または TAR アーカイブ内に含まれている場合は、必ずそのアーカイブを展開してください。

  2. JBoss EAP サーバーを起動します。
  3. 管理 CLI を起動します。

    $ EAP_HOME/bin/jboss-cli.sh
  4. module add 管理 CLI コマンドを使用して新しいコアモジュールを追加します。

    module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES

    たとえば、以下のコマンドは MySQL JDBC ドライバーモジュールを追加します。

    module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api
    重要

    module 管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境ではモジュールを手作業で 追加 および 削除 してください。

    テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

    テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

    module --help を実行すると、このコマンドを使用したモジュールの追加および削除の詳細を表示できます。

次に、アプリケーションデータソースによって参照されるよう、JDBC ドライバーとして登録する必要があります。

13.3.2. Agroal データソースの JDBC ドライバーの登録

ドライバーが コアモジュールとしてインストール されたら、以下の管理 CLI コマンドを使用して JDBC ドライバーとして登録する必要があります。管理対象ドメインを実行している場合は、コマンドの前に /profile=PROFILE_NAME を付けてください。

/subsystem=datasources-agroal/driver=DRIVER_NAME:add(module=MODULE_NAME,class=CLASS_NAME)

CLASS_NAME は、非 XA データソースの場合は java.sql.Driver または javax.sql.DataSource、XA データソースの場合は javax.sql.XADataSource を実装する完全修飾クラス名である必要があります。

13.4. Agroal 非 XA データソースの設定

重要

Agroal データソースの使用は、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

13.4.1. Agroal データソースの作成

以下の管理 CLI コマンドは Agroal データソースを作成します。管理対象ドメインを実行している場合は、コマンドの前に /profile=PROFILE_NAME を付けてください。

/subsystem=datasources-agroal/datasource=DATASOURCE_NAME:add(jndi-name=JNDI_NAME,connection-factory={driver=DRIVER_NAME,url=URL},connection-pool={max-size=MAX_POOL_SIZE})

利用できる Agroal データソース属性の完全リストは、「Agroal データソース属性」を参照してください。

Agroal データソース設定の例は、「MySQL Agroal データソースの例」を参照してください。

13.4.2. Agroal データソースの削除

以下の管理 CLI コマンドは Agroal データソースを削除します。管理対象ドメインを実行している場合は、コマンドの前に /profile=PROFILE_NAME を付けてください。

/subsystem=datasources-agroal/datasource=DATASOURCE_NAME:remove

13.5. Agroal XA データソースの設定

重要

Agroal データソースの使用は、テクノロジープレビューとしてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

13.5.1. Agroal XA データソースの作成

以下の管理 CLI コマンドは Agroal XA データソースを作成します。管理対象ドメインを実行している場合は、コマンドの前に /profile=PROFILE_NAME を付けてください。

/subsystem=datasources-agroal/xa-datasource=XA_DATASOURCE_NAME:add(jndi-name=JNDI_NAME,connection-factory={driver=DRIVER_NAME,connection-properties={ServerName=HOST_NAME,PortNumber=PORT,DatabaseName=DATABASE_NAME}},connection-pool={max-size=MAX_POOL_SIZE})

利用できる Agroal データソース属性の完全リストは、「Agroal データソース属性」を参照してください。

Agroal XA データソース設定の例は、「MySQL Agroal XA データソースの例」を参照してください。

13.5.2. Agroal XA データソースの削除

以下の管理 CLI コマンドは Agroal XA データソースを削除します。管理対象ドメインを実行している場合は、コマンドの前に /profile=PROFILE_NAME を付けてください。

/subsystem=datasources-agroal/xa-datasource=DATASOURCE_NAME:remove

13.6. Agroal データソースの設定例

13.6.1. MySQL Agroal データソースの例

以下は、接続設定および基本のセキュリティー設定が含まれる、MySQL Agroal データソースの設定例になります。

例: MySQL Agroal データソース設定
<subsystem xmlns="urn:jboss:domain:datasources-agroal:1.0">
    <datasource name="ExampleAgroalDS" jndi-name="java:jboss/datasources/ExampleAgroalDS">
        <connection-factory driver="mysql" url="jdbc:mysql://localhost:3306/jbossdb" username="admin" password="admin"/>
        <connection-pool max-size="30"/>
    </datasource>
    <drivers>
        <driver name="mysql" module="com.mysql" class="com.mysql.cj.jdbc.Driver"/>
    </drivers>
</subsystem>
例: MySQL JDBC ドライバー module.xml ファイル
<?xml version='1.0' encoding='UTF-8'?>

<module xmlns="urn:jboss:module:1.1" name="com.mysql">

    <resources>
        <resource-root path="mysql-connector-java-8.0.12.jar"/>
    </resources>

    <dependencies>
      <module name="javaee.api"/>
      <module name="sun.jdk"/>
      <module name="ibm.jdk"/>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
</module>
管理 CLI コマンドの例

以下の管理 CLI コマンドを使用すると、この設定例を実現できます。

  1. MySQL JDBC ドライバーをコアモジュールとして追加します。

    module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api
    重要

    module 管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境ではモジュールを手作業で 追加 および 削除 してください。

    テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

    テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

  2. MySQL JDBC ドライバーを登録します。

    /subsystem=datasources-agroal/driver=mysql:add(module=com.mysql,class=com.mysql.cj.jdbc.Driver)
  3. MySQL データソースを追加します。

    /subsystem=datasources-agroal/datasource=ExampleAgroalDS:add(jndi-name=java:jboss/datasources/ExampleAgroalDS,connection-factory={driver=mysql,url=jdbc:mysql://localhost:3306/jbossdb,username=admin,password=admin},connection-pool={max-size=30})

13.6.2. MySQL Agroal XA データソースの例

以下は、XA データソースプロパティーおよび基本のセキュリティー設定が含まれる、MySQL Agroal XA データソースの設定例になります。

例: MySQL Agroal XA データソース設定
<subsystem xmlns="urn:jboss:domain:datasources-agroal:1.0">
    <xa-datasource name="ExampleAgroalXADS" jndi-name="java:jboss/datasources/ExampleAgroalXADS">
        <connection-factory driver="mysqlXA" username="admin" password="admin">
            <connection-properties>
                <property name="ServerName" value="localhost"/>
                <property name="PortNumber" value="3306"/>
                <property name="DatabaseName" value="jbossdb"/>
            </connection-properties>
        </connection-factory>
        <connection-pool max-size="30"/>
    </xa-datasource>
    <drivers>
        <driver name="mysqlXA" module="com.mysql" class="com.mysql.cj.jdbc.MysqlXADataSource"/>
    </drivers>
</subsystem>
例: MySQL JDBC ドライバー module.xml ファイル
<?xml version='1.0' encoding='UTF-8'?>

<module xmlns="urn:jboss:module:1.1" name="com.mysql">

    <resources>
        <resource-root path="mysql-connector-java-8.0.12.jar"/>
    </resources>

    <dependencies>
      <module name="javaee.api"/>
      <module name="sun.jdk"/>
      <module name="ibm.jdk"/>
      <module name="javax.api"/>
      <module name="javax.transaction.api"/>
    </dependencies>
</module>
管理 CLI コマンドの例

以下の管理 CLI コマンドを使用すると、この設定例を実現できます。

  1. MySQL JDBC ドライバーをコアモジュールとして追加します。

    module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api
    重要

    module 管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境ではモジュールを手作業で 追加 および 削除 してください。

    テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。

    テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

  2. MySQL XA JDBC ドライバーを登録します。

    /subsystem=datasources-agroal/driver=mysqlXA:add(module=com.mysql,class=com.mysql.cj.jdbc.MysqlXADataSource)
  3. MySQL XA データソースを追加します。

    /subsystem=datasources-agroal/xa-datasource=ExampleAgroalXADS:add(jndi-name=java:jboss/datasources/ExampleAgroalXADS,connection-factory={driver=mysqlXA,connection-properties={ServerName=localhost,PortNumber=3306,DatabaseName=jbossdb},username=admin,password=admin},connection-pool={max-size=30})