Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

3.3.6 リソースに接続するための実装

アプリケーションからリソースに接続するには,Enterprise Beanやサーブレットでリソースへの参照を取得する必要があります。リソースへの参照を取得する方法として,ルックアップを使用する方法とDI(Dependency Injection)を使用する方法があります。

なお,EJB 3.0以降を使用する場合,DIを使用してリソースへの参照を取得してください。

<この項の構成>
(1) ルックアップを使用してリソースへの参照を取得する方法
(2) DIを使用してリソースへの参照を取得する方法
(3) リソースへの接続を実装する場合の注意事項

(1) ルックアップを使用してリソースへの参照を取得する方法

ルックアップを使用する場合,次の手順でアプリケーションからリソースに接続します。

  1. リソースに接続するコネクションを取得するためのファクトリクラスを,JNDIを使用してルックアップします。
    ルックアップする名前は,Enterprise BeanやサーブレットのDDで指定します。該当するタグは<resource-ref>タグ中の<res-ref-name>タグです。
  2. コネクションのファクトリクラスを使用して,コネクションを取得します。
  3. 取得したコネクションを使用して,リソースに接続します。
  4. 使用済みのコネクションをクローズします。

コネクションプーリングを使用している場合は,手順2.でプーリングされているコネクションが取得され,手順4.でコネクションがプールに返却されます。ユーザプログラムでコネクションプーリングを意識したコーディングは必要ありません。

(2) DIを使用してリソースへの参照を取得する方法

DIを使用してリソースへの参照を取得する場合,DDの定義は不要となります。DIの概要およびDI使用時の注意事項については,「12.4 DIの使用」を参照してください。

(3) リソースへの接続を実装する場合の注意事項

ユーザプログラムでリソースへのコネクションを取得した場合,使用後には必ずクローズしてください。具体的には,例外などが発生した場合にも必ずクローズするように,finally節でコネクションをクローズしてください。

なお,finalizeメソッドが呼ばれるタイミングはJavaVMのGCのタイミングに依存するので,finalizeメソッドでコネクションをクローズする設計にはしないでください。ユーザプログラムでコネクションが正しくクローズされない場合,取得できるコネクションの最大数に達してしまい,それ以上のコネクションが取得できなくなるおそれがあります。