2017-04-10 19 views
0

MySQLデータベースのJava Webアプリケーションに接続プールを実装したいと考えています。オンラインで見て、私はDriverManagerベースの接続をDataSourceタイプを利用するものに変更するためのガイドをいくつか見つけました。javax.sql.DataSource接続プールConfuch

a tutorial I found from Oracleからわかるように、DataSourceは自動的に、ビルドイン接続プール、特にこのセクションから接続を作成します。

変数dsは、データベースCOFFEEBREAKへのプールされた接続を生成するDataSourceオブジェクトを表します。このDataSourceオブジェクトを取得する必要があるのは、必要な数のプールされた接続を生成するために使用できるためです。 ds変数が表すDataSourceオブジェクトは、プールされた接続を生成するように構成されていたため、ds変数でgetConnectionメソッドを呼び出すと、プールされた接続が自動的に生成されます。

しかし、私は、DataSourceが接続プーリングを容易にしていないと判断し、ConnectionPoolDataSourceがそのタイプであると判断しました。だから私はこれで少し混乱しています。

DataSourceも接続プーリングを行いますか?もしそうなら、それを自動化しますか?接続を確立するために初期化を行ってすべてのサーブレットをセットアップしますか?これについてもっと知っておくためのガイド/リソースがありますか?

申し訳ありませんが、ご質問の文字列には、正しい方向のヘルプやポイントをいただければ幸いです。

+1

あなたはポイントcompletleyを見逃しました。前のいくつかの段落は、接続プーリングを提供する* DataSourceの*具体的な実装の使用について述べています。 Apache DBPCはそのようなものです。このチュートリアルでは、このようなソースを使用することは、他の 'DataSource'を使用することと構文的に同じであることを示しています。 – EJP

+0

' javax.sql.ConnectionPoolDataSource'の実装を決して使用しないでください。接続プール、それ自体では接続プールを提供しません(またはそうでなければなりません)。 –

答えて

1

DataSourceはインターフェイスであり、それを見るだけで、プールしているかどうかを知ることができません。いずれにせよ、あなたはいつも自分の明示的な接続プール(私はHikariCPには部分的です)を使うことができます。あなたは推測する必要はなく、プールで何をしているのかを正確に知ることができます。