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が推奨らしい

  1. PS C:\Programs\wildfly-8.0.0.Final\bin> .\jboss-cli.bat
  2. You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands
  3. .
  4. [disconnected /] connect
  5. [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 コマンドで確認

  1. [standalone@localhost:9990 /] jdbc-driver-info
  2. NAME SOURCE
  3. h2 com.h2database.h2/main
  4. 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
  5. 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構成前)を確認

  1. [standalone@localhost:9990 /] cd subsystem=datasources
  2. [standalone@localhost:9990 subsystem=datasources] :read-resource
  3. {
  4. "outcome" => "success",
  5. "result" => {
  6. "data-source" => {"ExampleDS" => undefined},
  7. "jdbc-driver" => {"h2" => undefined},
  8. "xa-data-source" => undefined
  9. }
  10. }

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 コマンドのサブコマンド

  1. [standalone@localhost:9990 /] data-source --help --commands
  2. add
  3. disable
  4. enable
  5. flush-all-connection-in-pool
  6. flush-gracefully-connection-in-pool
  7. flush-idle-connection-in-pool
  8. flush-invalid-connection-in-pool
  9. read-resource
  10. remove
  11. test-connection-in-pool
  12. To read the description of a specific command execute 'data-source command_name --help'.

add コマンドで作成する

  1. [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

結果を確認する

  1. [standalone@localhost:9990 subsystem=datasources] :read-resource
  2. {
  3. "outcome" => "success",
  4. "result" => {
  5. "data-source" => {
  6. "ExampleDS" => undefined,
  7. "tallaricoDS" => undefined
  8. },
  9. "jdbc-driver" => {"h2" => undefined},
  10. "xa-data-source" => undefined
  11. }
  12. }

設定可能項目を確認する

  1. [standalone@localhost:9990 /] data-source read-resource --name=TallaricoDS --recursive=true
  2. allocation-retry=n/a
  3. allocation-retry-wait-millis=n/a
  4. allow-multiple-users=false
  5. background-validation=n/a
  6. background-validation-millis=n/a
  7. blocking-timeout-wait-millis=n/a
  8. capacity-decrementer-class=n/a
  9. capacity-decrementer-properties=n/a
  10. capacity-incrementer-class=n/a
  11. capacity-incrementer-properties=n/a
  12. check-valid-connection-sql=n/a
  13. connection-listener-class=n/a
  14. connection-listener-property=n/a
  15. connection-properties=n/a
  16. connection-url=jdbc:mysql://127.0.0.1:3306/tallarico
  17. datasource-class=n/a
  18. driver-class=n/a
  19. driver-name=mysql-connector-java-5.1.30-bin.jar_com.mysql.jdbc.Driver_5_1
  20. enabled=true
  21. exception-sorter-class-name=n/a
  22. exception-sorter-properties=n/a
  23. flush-strategy=n/a
  24. idle-timeout-minutes=n/a
  25. initial-pool-size=n/a
  26. jndi-name=java:jboss/datasource/TallaricoDS
  27. jta=true
  28. max-pool-size=n/a
  29. min-pool-size=n/a
  30. new-connection-sql=n/a
  31. password=n/a
  32. pool-prefill=n/a
  33. pool-use-strict-min=n/a
  34. prepared-statements-cache-size=n/a
  35. query-timeout=n/a
  36. reauth-plugin-class-name=n/a
  37. reauth-plugin-properties=n/a
  38. security-domain=n/a
  39. set-tx-query-timeout=false
  40. share-prepared-statements=false
  41. spy=false
  42. stale-connection-checker-class-name=n/a
  43. stale-connection-checker-properties=n/a
  44. track-statements=NOWARN
  45. transaction-isolation=n/a
  46. url-delimiter=n/a
  47. url-selector-strategy-class-name=n/a
  48. use-ccm=true
  49. use-fast-fail=false
  50. use-java-context=true
  51. use-try-lock=n/a
  52. user-name=n/a
  53. valid-connection-checker-class-name=n/a
  54. valid-connection-checker-properties=n/a
  55. validate-on-match=false
  56. statistics=n/a

設定項目に値を設定する

–設定項目名=設定値 を半角スペースでつなげる

  1. [standalone@localhost:9990 /] data-source --name=TallaricoDS --user-name=root --password=*****
  2. operation-requires-reload: true
  3. operation-requires-reload: true
  4. process-state: reload-required

データソースの有効化

  1. [standalone@localhost:9990 subsystem=datasources] data-source enable --name=TallaricoDS

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

connect_success

以上。

Follow me!

コメントを残す

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