Java EE 7 検証環境構築(2) WildFly に DataSourceを作成

  1. Java EE 7 検証環境構築(1) WildFly + JBoss Tools で EARプロジェクトを作成し Arquillian で ユニットテストをグリーンにするところまで
  2. Java EE 7 検証環境構築(2) WildFly に DataSourceを作成
  3. Java EE 7 検証環境構築(3) JPAからMySQLに接続するユニットテストをArquillianで実行
  4. Java EE 7 検証環境構築(4) Java EE での DI(Dependency Injection) および CDI(Contexts and Dependency Injection)をながめる
  5. Java EE 7 検証環境構築(5) JBoss Toolsが生成したサンプルソースのCDIを確認する
  6. Java EE 7 検証環境構築(6) JPA エンティティの作成と挿入
  7. Java EE 7 検証環境構築(7) JPA 問い合わせ(1) 名前付きクエリを使ってみる。テストでトランザクションも意識する
  8. Java EE 7 検証環境構築(8) JPA 問い合わせ(2) 動的クエリとCriteria API を試す
  9. Java EE 7 検証環境構築(9) jBatch 概要をおさえる
  10. Java EE 7 検証環境構築(10) JBoss Tools で作成した EARプロジェクトをJava EE 6 から 7 に変更する
  11. Java EE 7 検証環境構築(11) jBatch用 プロジェクトの作成を行う
  12. Java EE 7 検証環境構築(12) jBatch 簡易サンプル作成と Arquillian でユニットテスト
  13. Java EE 7 検証環境構築(13) jBatch REST サービス経由で実行する
  14. Java EE 7 検証環境構築(14) WildFly の管理をGUIで行う
  15. Java EE 7 検証環境構築(15) WildFly を サービスとして設定する(Windows/Linux)
  16. 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_j_download

解凍して、mysql-connector-java-5.1.30-bin.jar を取り出す。

2. MySQL JDBCドライバのデプロイ

まず、前提条件を,2.1 ~ 2.3 に簡単に記述する。

2.1 WildFlyの構成

まず、WildFlyの構成には以下の2種類がある

  1. スタンドアロン
    • スタンドアロンモードは単体のJVMプロセスでサーバーを構成する
    • $ ./standalone.sh で起動
  2. ドメイン
    • 複数のサーバーを単一の管理ポイントから一元管理
    • ドメインに対する設定はドメイン全体で共有される
    • $ ./domain.sh で起動

2.2 JDBC登録方法

JDBCの登録方法には、以下のデプロイとカスタムモジュールの2種類ある。今回はデプロイを選択

  1. デプロイ
    • 動的モジュール
    • JARファイルは動的モジュールとして即時に読み込まれデータソースから参照可能
    • ドメインによる一括管理可能
    • 単一JAR対応(複数JARの場合、別モジュールとして扱う)
  2. カスタムモジュール
    • 静的モジュール
    • $JBOSS_HOME/modules 配下にJARファイルを静的モジュールとして配置
    • ドメイン管理不可
    • 複数のJARからなるドライバも単一のものとして扱う

2.3 管理ツール

管理ツールにも、以下の2種類が存在する

  1. 管理コンソール
  2. 管理CLI (コマンドラインインターフェース)
    • 管理操作をコマンドラインから対話的に実行できる
    • $ ./jboss-cli.sh で起動する

2.4 JDBCのデプロイ

WildFlyを起動(standalone.bat)させておき、管理CLIを起動(jboss-cli.bat) して、接続(connect)し、デプロイ(deploy)する

管理コンソール画面からもJDBCのデプロイは可能だが、あくまで簡易版であり、管理CLIが推奨らしい

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 から確認

check_mysql_driver_on_management_console_wildfly

管理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

管理コンソールから接続確認

connect_success

以上。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です