| JDBCの基礎知識 |
|
それではまず、接続のプーリングとは何であって、なぜ必要なのかという話から始めましょう。
プーリングというのは、実はデータベースの接続に限ったものではなく、オブジェクトなどを、ある場所(プール)にあらかじめ一定数保持しておき、クライアントなどの要求に応じて使用していないオブジェクトを貸し出し、使い終わったらプールに返却してもらい、またプールに入れて再利用するという仕組みのことです。
![]() |
| 接続のプーリングの基本的なプロセス。オブジェクトの再利用の仕組みである |
ではなぜ、データベース接続をプーリングする必要があるのでしょうか? 主な理由には、次の2つがあります。
●パフォーマンスの向上
一般に、オブジェクトのインスタンス化やデータベースへの接続、切断は負荷の高い処理といわれています。Webアプリケーションの場合、基本的にクライアントからのリクエストごとに処理を開始しますので、こういった負荷の高い処理を毎回行っていると応答速度に非常に影響します。プーリングを使うと、こういった処理を大幅に軽減することができ、応答速度を高めることができます。
●リソースの有効利用
また、Webアプリケーションの場合、特に公開系などのシステムでは同時にアクセスするクライアント数を予測することが難しい場合が多く、クライアントからのリクエストに対して際限なくデータベース接続を行ってしまうと、サーバのリソースを圧迫したり、データベース製品の同時接続数のライセンスに違反してしまうことも考えられます。プールで接続を一括して管理することで、同時接続数に制限をつけることもでき、こういった問題を解決することができます。
![]() |
| 接続プーリングにおけるリソースの有効利用 |
では、Webアプリケーションでは、データベースの接続プーリングをどのように実現しているのでしょうか。
初期のJDBC(1.0)では、接続プーリングの仕組みは仕様として定義されていませんでした。ですから、当時のアプリケーションサーバなどでは、データベースの接続プーリングは、各ベンダが独自に実装したクラスを使って実現されていました。そのため、プーリングを使ったアプリケーションは、ミドルウェアが変わると、その部分を修正する必要があり、ポータビリティを損なう結果になっていました。
しかし、JDBC 2.0からは標準拡張という形ではあるものの、接続プーリングの仕組みが仕様に取り入れられ、各ベンダも、その仕様にのっとった形で、接続プーリングを実装するようになってきました。現在では、J2EEにJDBCも含まれているため、J2EE準拠のアプリケーションサーバであれば、JDBCに定義された仕様で、接続プーリングが使えるようになってきているようです。
| 「Java Solution FAQ」 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -


