第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 コマンドを使用して有効にします。
拡張を追加します。
/extension=org.wildfly.extension.datasources-agroal:add
サブシステムを追加します。
/subsystem=datasources-agroal:add
変更を反映するためにサーバーをリロードします。
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 ドライバーをコアモジュールとしてインストールすることができます。
JDBC ドライバーをダウンロードします。
データベースのベンダーから適切な JDBC ドライバーをダウンロードします。一般的なデータベースの JDBC ドライバーをダウンロードできる場所については、「JDBC ドライバーのダウンロードできる場所」を参照してください。
JDBC ドライバーの JAR ファイルが ZIP または TAR アーカイブ内に含まれている場合は、必ずそのアーカイブを展開してください。
- JBoss EAP サーバーを起動します。
管理 CLI を起動します。
$ EAP_HOME/bin/jboss-cli.sh
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=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="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
管理 CLI コマンドの例
以下の管理 CLI コマンドを使用すると、この設定例を実現できます。
MySQL JDBC ドライバーをコアモジュールとして追加します。
module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javax.api,javax.transaction.api
重要module
管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境ではモジュールを手作業で 追加 および 削除 してください。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。
MySQL JDBC ドライバーを登録します。
/subsystem=datasources-agroal/driver=mysql:add(module=com.mysql,class=com.mysql.cj.jdbc.Driver)
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="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
管理 CLI コマンドの例
以下の管理 CLI コマンドを使用すると、この設定例を実現できます。
MySQL JDBC ドライバーをコアモジュールとして追加します。
module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javax.api,javax.transaction.api
重要module
管理 CLI コマンドを使用したモジュールの追加および削除は、テクノロジープレビューとしてのみ提供されます。このコマンドは、管理対象ドメインでの使用や、リモートによる管理 CLI への接続時には適していません。本番環境ではモジュールを手作業で 追加 および 削除 してください。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat は本番環境での使用は推奨しません。テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。
テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。
MySQL XA JDBC ドライバーを登録します。
/subsystem=datasources-agroal/driver=mysqlXA:add(module=com.mysql,class=com.mysql.cj.jdbc.MysqlXADataSource)
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})