Payara(GlassFish)でMariaDBのJDBC接続プールが作成できない
表題の通りです。
環境
- MacBook Air (OS X El Capitan)
- MariaDB 10.1.x
- Payara Web 4.1.153
- JDK 1.8.0_60
試していませんが、おそらくWindowsやGlassFishでも同じ現象が起こると思います。
現象
- MariaDBのJDBCドライバのJARを「<PAYARA_HOME>/glassfish/lib」や「<PAYARA_HOME>/glassfish/domains/domain1/lib」に置く
- Payaraを起動してlocalhost:4848にアクセスし、管理コンソールからURL/USER/PASSWORDを設定する
という一般的な手順で作成しても、MariaDBへのpingが通りません。
ping時のPayara管理コンソール(ブラウザ上)でのエラーメッセージは、こんなのが出ます。
Access denied for user ‘’@’localhost’ (using password: NO)
どうやら、ユーザー名やパスワード設定が間違っている時に出てくるMariaDBのエラーメッセージのようなのですが、全く同じURL/USER/PASSWORDでメインメソッドから普通にJDBC接続したら出来ました。 (URL/USER/PASSWORDはPayara管理コンソールからコピペしたので間違いないはずです)
Payaraのプロパティ名も間違えていません。
しかも、ごくたまにpingが通ります。しかし、またすぐにpingが通らなくなります。
対策
今回は、MariaDBをPayaraで使うこと自体が目的ではないので、MySQL 5.6に変更しました。そうすると無事にJDBC接続プールが作成できました。
原因は分かりませんが、Payara管理コンソールで選択するときのDBの種類にはMariaDBは入っていないし、Payara(というか恐らくGlassFish)はMariaDBに対応していないのかもしれません。 (完全に僕の憶測です)
注意
この問題は、あくまでPayara+MariaDBの組み合わせによるものです。