Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
- Java EE 7 検証環境構築(1) WildFly + JBoss Tools で EARプロジェクトを作成し Arquillian で ユニットテストをグリーンにするところまで
- Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
- Java EE 7 検証環境構築(3) JPAからMySQLに接続するユニットテストをArquillianで実行
- Java EE 7 検証環境構築(4) Java EE での DI(Dependency Injection) および CDI(Contexts and Dependency Injection)をながめる
- Java EE 7 検証環境構築(5) JBoss Toolsが生成したサンプルソースのCDIを確認する
- Java EE 7 検証環境構築(6) JPA エンティティの作成と挿入
- Java EE 7 検証環境構築(7) JPA 問い合わせ(1) 名前付きクエリを使ってみる。テストでトランザクションも意識する
- Java EE 7 検証環境構築(8) JPA 問い合わせ(2) 動的クエリとCriteria API を試す
- Java EE 7 検証環境構築(9) jBatch 概要をおさえる
- Java EE 7 検証環境構築(10) JBoss Tools で作成した EARプロジェクトをJava EE 6 から 7 に変更する
- Java EE 7 検証環境構築(11) jBatch用 プロジェクトの作成を行う
- Java EE 7 検証環境構築(12) jBatch 簡易サンプル作成と Arquillian でユニットテスト
- Java EE 7 検証環境構築(13) jBatch REST サービス経由で実行する
- Java EE 7 検証環境構築(14) WildFly の管理をGUIで行う
- Java EE 7 検証環境構築(15) WildFly を サービスとして設定する(Windows/Linux)
- Java EE 7 検証環境構築(16) WildFly と Apache を mod_jk で連携させる(Widows)
ユニットテストが通る環境がととのったが、データソースが、H2とかいうJavaのテスト用Databaseなので、MySQLに差し替えていく。
1. MySQL Connector/J のダウンロード
https://dev.mysql.com/downloads/connector/j/
Platform Independent
mysql-connector-java-5.1.30.zip
解凍して、mysql-connector-java-5.1.30-bin.jar を取り出す。
2. MySQL JDBCドライバのデプロイ
まず、前提条件を,2.1 ~ 2.3 に簡単に記述する。
2.1 WildFlyの構成
まず、WildFlyの構成には以下の2種類がある
- スタンドアロン
- スタンドアロンモードは単体のJVMプロセスでサーバーを構成する
- $ ./standalone.sh で起動
- ドメイン
- 複数のサーバーを単一の管理ポイントから一元管理
- ドメインに対する設定はドメイン全体で共有される
- $ ./domain.sh で起動
2.2 JDBC登録方法
JDBCの登録方法には、以下のデプロイとカスタムモジュールの2種類ある。今回はデプロイを選択
- デプロイ
- 動的モジュール
- JARファイルは動的モジュールとして即時に読み込まれデータソースから参照可能
- ドメインによる一括管理可能
- 単一JAR対応(複数JARの場合、別モジュールとして扱う)
- カスタムモジュール
- 静的モジュール
- $JBOSS_HOME/modules 配下にJARファイルを静的モジュールとして配置
- ドメイン管理不可
- 複数のJARからなるドライバも単一のものとして扱う
2.3 管理ツール
管理ツールにも、以下の2種類が存在する
- 管理コンソール
- http://localhost:9990 で提供されるWebベースの管理画面
- 管理CLI (コマンドラインインターフェース)
- 管理操作をコマンドラインから対話的に実行できる
- $ ./jboss-cli.sh で起動する
2.4 JDBCのデプロイ
WildFlyを起動(standalone.bat)させておき、管理CLIを起動(jboss-cli.bat) して、接続(connect)し、デプロイ(deploy)する
- PS C:\Programs\wildfly-8.0.0.Final\bin> .\jboss-cli.bat
- You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands
- .
- [disconnected /] connect
- [standalone@localhost:9990 /] deploy c:\work\mysql-connector-java-5.1.30-bin.jar
WildFly管理コンソール(localhost:9990) Server – Manage Deployments から確認
管理CLI jdbc-driver-info コマンドで確認
- [standalone@localhost:9990 /] jdbc-driver-info
- NAME SOURCE
- h2 com.h2database.h2/main
- mysql-connector-java-5.1.30-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1 mysql-connector-java-5.1.30-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1
- mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1 mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
3.データソース
データソースは、データソースの作成、設定値の更新、有効化の手順で実施する。
3.1 定義の確認
現在の構成(MySQL構成前)を確認
- [standalone@localhost:9990 /] cd subsystem=datasources
- [standalone@localhost:9990 subsystem=datasources] :read-resource
- {
- "outcome" => "success",
- "result" => {
- "data-source" => {"ExampleDS" => undefined},
- "jdbc-driver" => {"h2" => undefined},
- "xa-data-source" => undefined
- }
- }
3.2 非XAデータソースの作成
非XAデータソース作成必須項目
項目 | 内容 | 例 |
connection-url | 接続先DBのURL | jdbc:mysql://127.0.0.1:3306/tallarico |
driver-name | 使用するJDBCドライバ ・デプロイ時は、JDBCドライバファイル名 ・カスタムモジュール時はリソース名 |
mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1 |
jndi-name | JNDI名(java:/もしくは、java:jboss:/ どちらかで始まる) | java:jboss/datasources/TallaricoDS |
data-source コマンドで作成
data-source コマンドのサブコマンド
- [standalone@localhost:9990 /] data-source --help --commands
- add
- disable
- enable
- flush-all-connection-in-pool
- flush-gracefully-connection-in-pool
- flush-idle-connection-in-pool
- flush-invalid-connection-in-pool
- read-resource
- remove
- test-connection-in-pool
- To read the description of a specific command execute 'data-source command_name --help'.
add コマンドで作成する
- [standalone@localhost:9990 /] data-source add --name=TallaricoDS --connection-url=jdbc:mysql://127.0.0.1:3306/tallarico --jndi-name=java:jboss/datasources/TallaricoDS --driver-name=mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
結果を確認する
- [standalone@localhost:9990 subsystem=datasources] :read-resource
- {
- "outcome" => "success",
- "result" => {
- "data-source" => {
- "ExampleDS" => undefined,
- "tallaricoDS" => undefined
- },
- "jdbc-driver" => {"h2" => undefined},
- "xa-data-source" => undefined
- }
- }
設定可能項目を確認する
- [standalone@localhost:9990 /] data-source read-resource --name=TallaricoDS --recursive=true
- allocation-retry=n/a
- allocation-retry-wait-millis=n/a
- allow-multiple-users=false
- background-validation=n/a
- background-validation-millis=n/a
- blocking-timeout-wait-millis=n/a
- capacity-decrementer-class=n/a
- capacity-decrementer-properties=n/a
- capacity-incrementer-class=n/a
- capacity-incrementer-properties=n/a
- check-valid-connection-sql=n/a
- connection-listener-class=n/a
- connection-listener-property=n/a
- connection-properties=n/a
- connection-url=jdbc:mysql://127.0.0.1:3306/tallarico
- datasource-class=n/a
- driver-class=n/a
- driver-name=mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
- enabled=true
- exception-sorter-class-name=n/a
- exception-sorter-properties=n/a
- flush-strategy=n/a
- idle-timeout-minutes=n/a
- initial-pool-size=n/a
- jndi-name=java:jboss/datasource/TallaricoDS
- jta=true
- max-pool-size=n/a
- min-pool-size=n/a
- new-connection-sql=n/a
- password=n/a
- pool-prefill=n/a
- pool-use-strict-min=n/a
- prepared-statements-cache-size=n/a
- query-timeout=n/a
- reauth-plugin-class-name=n/a
- reauth-plugin-properties=n/a
- security-domain=n/a
- set-tx-query-timeout=false
- share-prepared-statements=false
- spy=false
- stale-connection-checker-class-name=n/a
- stale-connection-checker-properties=n/a
- track-statements=NOWARN
- transaction-isolation=n/a
- url-delimiter=n/a
- url-selector-strategy-class-name=n/a
- use-ccm=true
- use-fast-fail=false
- use-java-context=true
- use-try-lock=n/a
- user-name=n/a
- valid-connection-checker-class-name=n/a
- valid-connection-checker-properties=n/a
- validate-on-match=false
- statistics=n/a
設定項目に値を設定する
–設定項目名=設定値 を半角スペースでつなげる
- [standalone@localhost:9990 /] data-source --name=TallaricoDS --user-name=root --password=*****
- operation-requires-reload: true
- operation-requires-reload: true
- process-state: reload-required
データソースの有効化
- [standalone@localhost:9990 subsystem=datasources] data-source enable --name=TallaricoDS
管理コンソールから接続確認
以上。