ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Express Java EE運用ガイド(Java EE 6編)
FUJITSU Software

2.17 データベース連携/JDBC

Java EEコンポーネントはデータベースにアクセスする場合、JDBC APIを使用します。以下にデータベース連携の機能について説明します。

JDBCリソース

アプリケーションからアクセスする各データベース用にJDBCリソース(データソースと呼ぶ場合もあります)を定義します。一意のJNDI名を指定してJDBCリソースを定義し、アプリケーションはJNDI APIを使用してJDBCリソースを取得します。JDBCリソースに対して、データベースへの処理要求を実行できます。

JDBC接続プール

JDBC接続プールは、再利用可能な接続を管理します。データベースに対して新規に接続を確立する場合、接続に時間がかかります。このため、Interstageでは接続をプールして再利用することで性能を向上します。アプリケーションから接続要求を行った場合、接続はプールから獲得します。アプリケーションから接続の解放要求を行った場合、接続はプールに返却されます。

しかし、JDBCドライバ側もプーリング機能を提供する可能性があります。JDBCドライバ側のプーリング機能を有効にすると、Interstage側のプーリング機能と冗長に動作します。JDBCドライバ側のプーリング機能を有効にする場合は、Interstage側のプーリング機能を無効にしてください。

Interstage側のプーリング機能が無効の場合、アプリケーションから接続の解放要求を行うときに、接続はInterstage側の接続プールにキャッシュされずに、直接削除されます。アプリケーションから接続要求を行うときに、必ずJDBCドライバを利用して接続を再取得します。

JDBCリソースを定義する際にJDBC接続プールを指定します。複数のJDBCリソースが1つのJDBC接続プールを共有できます。

JDBCリソースとJDBC接続プールの動作

アプリケーションはデータベースにアクセスする場合、まずはJDBCリソースから接続を取得する必要があります。以下にアプリケーションからデータベースにアクセスする方法と、JDBCリソースとJDBC接続プールの動作について説明します。

Interstage側のプーリング機能が有効・無効の場合でJDBC接続プールの動作が異なります。

  1. JNDI APIを実行して、アクセスするデータベース用に定義されたJDBCリソース(データソース)を取得します。JDBCリソースを取得する際には、JDBCリソース定義時に指定したJNDI名を指定します。

  2. JDBCリソースからデータベースの接続(java.sql.Connectionオブジェクト)を獲得します。

    1. Interstage側のプーリング機能が有効の場合

      Interstageは、内部的に同一のユーザ名とパスワードでキャッシュされた物理接続を接続プールから検索して返却します。プールに接続が存在しなかった場合、データベースに対して新たに物理接続を獲得します。最大プールサイズなどはチューニング可能です。チューニング方法については、「6.8 データベース連携環境のチューニング」を参照してください。

    2. Interstage側のプーリング機能が無効の場合

      データベースに対して新たに物理接続を獲得します。

  3. アプリケーションはJDBC APIを使用して、獲得された接続に対して検索、更新、挿入処理を実行します。JDBCドライバはアプリケーションの処理要求を受け付けて、データベースに処理を要求します。

  4. データベースに対する処理が完了したら接続を解放します。Interstageは、アプリケーションで解放された接続を接続プールに返却します。

    1. Interstage側のプーリング機能が有効の場合

      接続は接続プールにキャッシュされます。一度接続プールに返却された接続は、次のアプリケーションで利用可能となります。

    2. Interstage側のプーリング機能が無効の場合

      接続は接続プールにキャッシュされずに、直接削除されます。

データベースと連携するアプリケーションの作成方法の詳細は、「3.1.7 データベース連携アプリケーションの作成方法」を参照してください。