GlassFish に asadmin で H2 DataSource 登録
GlassFish なら管理コンソール(http://localhost:4848/)で操作もできるけど、4.1 や 4.1.1 だと JDBC に H2 の DataSource を登録する時に RuntimeError が出て登録できなかった… ので仕方なくコマンドのやり方を調べた。
コマンド
asadmin create-jdbc-connection-pool --datasourceclassname org.h2.jdbcx.JdbcDataSource --restype javax.sql.DataSource --property user=sa:password=password:url="jdbc\:h2\:mem\:test" H2Pool asadmin create-jdbc-resource --connectionpoolid H2Pool jdbc/h2ds
失敗例
失敗例 その1
asadmin create-jdbc-connection-pool --datasourceclassname org.h2.jdbcx.JdbcDataSource --restype javax.sql.DataSource --property user=sa:password=password:url="jdbc\\:h2\\:mem\\:test" H2Pool
Windows だとバックスラッシュは1個。 cmd.exe から叩いた場合。 asadmin を実行して対話シェルから実行した場合は確認してない。
On Solaris, escape colon characters (:) within property values with double backslashes (\). On Windows, escape colon characters (:) with single backslashes ( ).
失敗例 その1
asadmin create-jdbc-resource --connectionpoolid H2Pool java:app/env/h2
JNDI 名は java:
はつけず jdbc/h2ds
のように指定する。
(先程と同じコロンの文字の制約だったかもしれない)
To Create a JDBC Connection Pool (Oracle GlassFish Server 3.0.1 Administration Guide)
すると java:app/jdbc/h2ds という JNDI 名になる。
ちなみに
GlassFish 4 系でいろいろ頑張ってみたものの、エラーが出たりバグが多いから 3 に戻したよ!って言ってるページがあって、 3 に戻したら Java SE 7 + Java EE 6 を強要されてどうせなら新しい技術触ってみたいし実際に Java SE 8 + Java EE 7 で書いてしまってたので WildFly にした。