[Scala]Scala + Liftで、GlassFishの接続プールを使う

2011年12月21日

GlassFishはWeb ・EJBコンテナなので、せっかくなので、Scala + Liftの環境からJDBC接続プールを使いたい。

幸い、liftにはJNDIでDB接続する仕組みが入っているようです。

liftがデフォルトで参照するJDBC接続プールは、liftという名前のJNDIなので、今回はliftという名前で設定します。

GlassFishはほぼ標準状態で入っている前提で。

まずはmysqlのjdbcドライバをGlassFishのlibにコピーします。

http://www.mysql.com/downloads/connector/j/

からダウンロードして c:\glassfish3/lib コピーします。

GlassFishのドメインを起動します。
[shell]asadmin start-domain[/shell]
つぎに

http://localhost:4848/

にアクセスします。

ログイン画面が出たら、初期設定時の情報でログインします。

ここでログインがどうしても失敗する場合、server.logにおかしなエラーが出てたら、ドメインの再起動をすると直ったりします。この辺はよく分かりません。

ログインすると、

というメニューが出ます。

この中のリソース – JDBC – JDBC接続プールとたどります。

新規ボタンを押して

 

プール名:lift
リソースタイプ:javax.sql.ConnectionPoolDataSource
データベースドライバのベンダー:MySql
と設定する

ステップ2/2では、追加プロパティー以外は修正しなくても良いです。

追加プロパティで変更する箇所は

user [データベースユーザ名]
password [データベースパスワード]
DatabaseName MySQL
ServerName localhost
port 3306
URL jdbc:mysql://localhost:3306/test

です。

URLのtestは、使用するデータベース名になります。

接続プールの作成が完了したので、次にJDBCリソースを追加します。

こちらも、同様に新規ボタンで項目を作成します。

liftがデフォルトで認識するJNDI名がliftなので、今回はliftにします。

これで、接続プールの設定が完了しました。

あとはscala + Liftのプロジェクトをデプロイすると、接続プールを使ってMySQLにアクセスするようになります。

そのうち、JNDI名を変更したバージョンも実験してみたいと思います。

Lift,ScalaGlassFish

Posted by GENDOSU