13.2. JDBC ドライバー
JBoss EAP でアプリケーションが使用するデータソースを定義する前に、最初に適切な JDBC ドライバーをインストールする必要があります。
13.2.1. コアモジュールとしての JDBC ドライバーのインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従うと、管理 CLI を使用して JDBC ドライバーをコアモジュールとしてインストールすることができます。
JDBC ドライバーをダウンロードします。
データベースのベンダーから適切な JDBC ドライバーをダウンロードします。一般的なデータベースの JDBC ドライバーをダウンロードできる場所については、JDBC ドライバーのダウンロードできる場所 を参照してください。
JDBC ドライバーの JAR ファイルが ZIP または TAR アーカイブ内に含まれている場合は、必ずそのアーカイブをデプロイメントしてください。
- JBoss EAP サーバーを起動します。
管理 CLI を起動しますが、実行中のインスタンスへの接続に
--connectまたは-c引数を使用しないでください。$ EAP_HOME/bin/jboss-cli.shmodule 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-5.1.36-bin.jar --dependencies=javax.api,javax.transaction.api重要module --helpを実行すると、このコマンドを使用したモジュールの追加および削除の詳細を表示できます。connect管理 CLI コマンドを使用して、実行中のインスタンスに接続します。connectJDBC ドライバーの登録マネージドドメインを実行している場合は、コマンドの前に
/profile=PROFILE_NAMEを付けてください。/subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)注記driver-class-nameパラメーターは、JDBC ドライバー jar が/META-INF/services/java.sql.Driverファイルで複数の jar を定義する場合のみ必要です。たとえば、MySQL 5.1.36 JDBC ドライバー JAR の
/META-INF/services/java.sql.Driverファイルは、以下の 2 つのクラスを定義します。- com.mysql.jdbc.Driver
- com.mysql.fabric.jdbc.FabricMySQLDriver
この場合、
driver-class-name=com.mysql.jdbc.Driverで渡します。たとえば、以下のコマンドは MySQL JDBC ドライバーを登録します。
/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, driver-class-name=com.mysql.jdbc.Driver)
アプリケーションのデータソースが JDBC ドライバーを参照できる状態になります。
13.2.2. JAR デプロイメントとして JDBC ドライバーをインストールする リンクのコピーリンクがクリップボードにコピーされました!
管理 CLI または管理コンソールを使用して JDBC ドライバーを JAR デプロイメントとしてインストールできます。JDBC 4 に対応するドライバーは、自動的に認識され、デプロイメント時に JDBC ドライバーとしてインストールされます。
以下の手順は、管理 CLI を使用した JDBC ドライバーのインストール方法になります。
JDBC ドライバーを コアモジュール としてインストールする方法が推奨されます。
JDBC ドライバーをダウンロードします。
データベースのベンダーから適切な JDBC ドライバーをダウンロードします。一般的なデータベースの JDBC ドライバーをダウンロードできる場所については、JDBC ドライバーのダウンロードできる場所 を参照してください。
JDBC ドライバーの JAR ファイルが ZIP または TAR アーカイブ内に含まれている場合は、必ずそのアーカイブをデプロイメントしてください。
- JDBC ドライバーが JDBC 4 に対応していない場合は、JDBC ドライバー JAR を JDBC 4 対応に更新 の手順を参照してください。
JAR を JBoss EAP にデプロイします。
deploy PATH_TO_JDBC_JAR注記マネージドドメインでは、適切なサーバーグループを指定します。
たとえば、以下のコマンドは MySQL JDBC ドライバーをデプロイします。
deploy /path/to/mysql-connector-java-5.1.36-bin.jarJBoss EAP サーバーログにメッセージが表示され、データソースを定義するときに使用されるデプロイされたドライバーの名前が表示されます。
WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.jdbc.Driver_5_1
アプリケーションのデータソースが JDBC ドライバーを参照できる状態になります。
JDBC ドライバー JAR を JDBC 4 対応に更新
JDBC ドライバー JAR が JDBC 4 に対応していない場合、以下の手順に従ってデプロイ可能にすることができます。
- 空の一時ディレクトリーを作成します。
-
META-INFサブディレクトリーを作成します。 -
META-INF/servicesサブディレクトリーを作成します。 META-INF/services/java.sql.Driverファイルを作成し、JDBC ドライバーの完全修飾クラス名を示す 1 行を追加します。たとえば、MySQL JDBC ドライバーでは以下の行を追加します。
com.mysql.jdbc.DriverJAR コマンドラインツールを使用して、この新しいファイルを JAR に追加します。
jar \-uf jdbc-driver.jar META-INF/services/java.sql.Driver
13.2.3. JDBC ドライバーをダウンロードできる場所 リンクのコピーリンクがクリップボードにコピーされました!
下表は、JBoss EAP で使用される一般的なデータベースの JDBC ドライバーをダウンロードできる場所を示しています。
これらのリンク先は他社の Web サイトであるため、Red Hat は管理しておらず、積極的に監視も行っていません。ご使用のデータベースの最新ドライバーについては、データベースベンダーのドキュメントおよび Web サイトを確認してください。
| ベンダー | ダウンロード場所 |
|---|---|
| MySQL | |
| PostgreSQL | |
| Oracle | http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html |
| IBM | |
| Sybase | jConnect JDBC ドライバーは、SAP ASE インストールの SDK の一部です。現在、このドライバーのみをダウンロードできるサイトはありません。 |
| Microsoft |
13.2.4. ベンダー固有クラスへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
場合によっては、アプリケーションが JDBC API の一部ではないベンダー固有の機能を使用する必要があることがあります。このような場合、そのアプリケーションで依存関係を宣言してベンダー固有の API にアクセスすることができます。
これは高度な使用法です。JDBC API に含まれない機能を必要とするアプリケーションのみこれを実装します。
このプロセスは、再認証メカニズムを使用し、ベンダー固有のクラスにアクセスする場合に必要です。
MANIFEST.MF ファイルまたは jboss-deployment-structure.xml ファイルを使用するとアプリケーションの依存関係を定義できます。
JDBC ドライバーをコアモジュールとしてインストール していない場合は、インストールしてください。
MANIFEST.MF ファイルの使用
-
アプリケーションの
META-INF/MANIFEST.MFファイルを編集します。 Dependencies行を追加し、モジュール名を指定します。たとえば、以下の行は
com.mysqlモジュールを依存関係として宣言します。Dependencies: com.mysql
jboss-deployment-structure.xml ファイルの使用
-
アプリケーションの
META-INF/またはWEB-INF/フォルダーでjboss-deployment-structure.xmlというファイルを作成します。 dependencies要素を使用してモジュールを指定します。たとえば、以下の
jboss-deployment-structure.xmlファイル例はcom.mysqlモジュールを依存関係として宣言します。<jboss-deployment-structure> <deployment> <dependencies> <module name="com.mysql"/> </dependencies> </deployment> </jboss-deployment-structure>
以下のコード例は MySQL API にアクセスします。
import java.sql.Connection;
import org.jboss.jca.adapters.jdbc.WrappedConnection;
...
Connection c = ds.getConnection();
WrappedConnection wc = (WrappedConnection)c;
com.mysql.jdbc.Connection mc = wc.getUnderlyingConnection();
接続は IronJacamar コンテナーによって制御されるため、ベンダー固有の API ガイドラインに従ってください。