WildFlyにJDBCドライバをデプロイしたうえで、DataSourceを作成したことがなかったのでメモ。
今までは、いつもカスタムモジュールとしてインストールしていました。
今回の対象は、WildFly 8.2.0.Final、MySQL(JDBCドライバのバージョンは5.1.35)とします。あと、作るのは非XA DataSourceです。
WildFlyを起動。
$ wildfly-8.2.0.Final/bin/standalone.sh
管理CLIに接続。
$ wildfly-8.2.0.Final/bin/jboss-cli.sh -c [standalone@localhost:9990 /]
JDBCドライバをデプロイ。
[standalone@localhost:9990 /] deploy /path/to/mysql-connector-java-5.1.35-bin.jar
確認。
[standalone@localhost:9990 /] jdbc-driver-info NAME SOURCE h2 com.h2database.h2/main mysql-connector-java-5.1.35-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1 mysql-connector-java-5.1.35-bin.jar_com.mysql.fabric.jdbc.FabricMySQLDriver_5_1 mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1 mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1
なんか、MySQLっぽいものがいろいろいます。
DataSource追加。
[standalone@localhost:9990 /] data-source add --name=MysqlDs --jndi-name=java:jboss/datasources/MysqlDs --user-name=kazuhira --password=password --driver-name=mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1 --connection-url=jdbc:mysql://localhost:3306/practice?useUnicode=true&characterEncoding=utf-8&characterSetResults=utf-8&useServerPrepStmts=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false
確認。
[standalone@localhost:9990 /] cd subsystem=datasources/data-source=MysqlDs [standalone@localhost:9990 data-source=MysqlDs] :read-resource { "outcome" => "success", "result" => { "allocation-retry" => undefined, "allocation-retry-wait-millis" => undefined, "allow-multiple-users" => false, "background-validation" => undefined, "background-validation-millis" => undefined, "blocking-timeout-wait-millis" => undefined, "capacity-decrementer-class" => undefined, "capacity-decrementer-properties" => undefined, "capacity-incrementer-class" => undefined, "capacity-incrementer-properties" => undefined, "check-valid-connection-sql" => undefined, "connection-listener-class" => undefined, "connection-listener-property" => undefined, "connection-properties" => undefined, "connection-url" => "jdbc:mysql://localhost:3306/practice?useUnicode=true&characterEncoding=utf-8&characterSetResults=utf-8&useServerPrepStmts=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false", "datasource-class" => undefined, "driver-class" => undefined, "driver-name" => "mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1", "enabled" => true, "exception-sorter-class-name" => undefined, "exception-sorter-properties" => undefined, "flush-strategy" => undefined, "idle-timeout-minutes" => undefined, "initial-pool-size" => undefined, "jndi-name" => "java:jboss/datasources/MysqlDs", "jta" => true, "max-pool-size" => undefined, "min-pool-size" => undefined, "new-connection-sql" => undefined, "password" => "password", "pool-prefill" => undefined, "pool-use-strict-min" => undefined, "prepared-statements-cache-size" => undefined, "query-timeout" => undefined, "reauth-plugin-class-name" => undefined, "reauth-plugin-properties" => undefined, "security-domain" => undefined, "set-tx-query-timeout" => false, "share-prepared-statements" => false, "spy" => false, "stale-connection-checker-class-name" => undefined, "stale-connection-checker-properties" => undefined, "track-statements" => "NOWARN", "transaction-isolation" => undefined, "url-delimiter" => undefined, "url-selector-strategy-class-name" => undefined, "use-ccm" => true, "use-fast-fail" => false, "use-java-context" => true, "use-try-lock" => undefined, "user-name" => "kazuhira", "valid-connection-checker-class-name" => undefined, "valid-connection-checker-properties" => undefined, "validate-on-match" => false, "statistics" => { "jdbc" => undefined, "pool" => undefined } } }
接続のテスト。
[standalone@localhost:9990 data-source=MysqlDs] /subsystem=datasources/data-source=MysqlDs:test-connection-in-pool { "outcome" => "success", "result" => [true] }
設定変更。
[standalone@localhost:9990 data-source=MysqlDs] /subsystem=datasources/data-source=MysqlDs:write-attribute(name=min-pool-size, value=5) {"outcome" => "success"} [standalone@localhost:9990 data-source=MysqlDs] reload
作成したデータソースの削除。
[standalone@localhost:9990 data-source=MysqlDs] /subsystem=datasources/data-source=MysqlDs:remove() {"outcome" => "success"}
こんなところでしょう。
オマケ)
そういえばJDBCドライバのクラス名って、META-INF/servicesを見るのがよいですね。
$ unzip -p mysql-connector-java-5.1.35-bin.jar META-INF/services/java.sql.Driver
com.mysql.jdbc.Driver
当たり前といえば、当たり前ですが…。