GlassFishの管理コンソールを操作
そろそろGlassFishの説明がないのをご不満に感じられていると思います。具体的な例を交えたかったためここまで説明を引き延ばしてしまいました。DAOクラスの説明でConnectionクラスの取得方法を紹介しましたが、Servletのスレッドプール同様、Connectionもプールしておくことにより、Connectionの生成に要するコストを削減したいと思います。
管理コンソールを開く
GlassFishの管理コンソールを開くには[サービス]-[サーバー]-[GlassFish v2.1]を選択し右クリックします。[管理コンソールを表示]を選択するとブラウザが開き管理コンソール画面が開きます。メモリが不足しているときは開かない場合があります。使っていないものを閉じてから再度開いてください。図19が管理コンソールの認証画面です。ユーザ名、パスワードは第1回でGlassFishのセットアップで設定したものを入力します。図20は管理コンソールの左ペインです。図21は右ペインです。基本的に左ペインのノードを選択すると右ペインに設定画面が表示されます。ただし、慣れないうちは右ペインに最初に表示される[共通操作]画面から目的の操作を選択することをお薦めします。
コネクションプーリングを使用可能にする
コネクションとはアプリケーションサーバとデータベースとの接続に他なりませんが、それをクラス化したものがConnectionクラスです。一般にアプリケーションとデータベースを接続するには時間がかかります(時間がかかると言うことはリソースを大量に消費しているということであり、そういう意味で「コストのかかる処理」などと呼ばれます)。コネクションの場合も、あらかじめコネクションを生成・プールしておき、アプリケーションからコネクションの要求があれば、空いているコネクションを渡すという方法をとります。このようなプールをコネクションプール(接続プール)と呼び、仕組みをコネクションプーリングと呼びます。アプリケーションからコネクションプーリングを使用してコネクションを得るには以下の手順を踏みます。
- GlassFishの管理コンソールを用いてコネクションプールを作成する
- GlassFIshの管理コンソールを用いてコネクションプールにJDNI名を割り当てる
- web.xml、sun-web.xmlでコネクションプールを定義する
- JNDIのAPIを用いてDataSourceオブジェクトを取得する
- DataSourceオブジェクトからConnectionオブジェクトを取得する
GlassFishの管理コンソールを用いてコネクションプールを作成する
左ペインで[リソース]-[JDBC]と開き、[接続プール]を開くと図22のようにデフォルトの4つのコネクションプールが表示されます。[新規]ボタンをクリックすると、図23のように[新しいJDBC接続プール(ステップ 1/2)]画面が開きます。名前に「ImoshopPool」を入力し、リソースタイプは「javax.sql.DataSource」を選択します。[次へ]ボタンをクリックすると、図24のように[新しいJDBC接続プール(ステップ 2/2)]画面が表示されます。データソースクラス名に「com.mysql.jdbc.jdbc2.optional.MysqlDataSource」を入力します。実際の画面には「プール設定」、「接続検証」、「トランザクション」などの多くの設定項目があり、プロジェクトの特性に応じてチューニングする必要があります。今回はデフォルト値のまま[完了]ボタンをクリックします。図25のようにImoshopPoolが追加されているのが分かります。
[新しいJDBC接続プール(ステップ 2/2)]画面でデータソースクラス名だけ入力し完了しましたが、実際は一番下にある[プロパティーを追加]ボタンをクリックし、接続に必要なプロパティーを指定する必要があります。ただし、プロパティーの追加はいつでも可能です。図25のコネクションプール一覧から作成したImoshopPoolのリンクをクリックすると図26のように[接続プールを編集]画面が表示され、一番右側の[追加プロパティー]をクリックし、[プロパティーを追加]ボタンをクリックすることでプロパティーの設定ができます。接続に必要なプロパティーは図27の通りです。





![図23.[新しいJDBC接続プール(ステップ 1/2)]画面](http://cz-cdn.shoeisha.jp/static/images/article/4841/GlassFish_4_123_s.gif)
![図24.[新しいJDBC接続プール(ステップ 2/2)]画面](http://cz-cdn.shoeisha.jp/static/images/article/4841/GlassFish_4_124_s.gif)

![図26.[接続プールを編集]画面](http://cz-cdn.shoeisha.jp/static/images/article/4841/GlassFish_4_126_s.gif)
