- - PR -
JAVAの開発でDataSourceをもちいたコネクションプーリングについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-08-26 23:25
こんばんわ
JAVAの開発でDataSourceをもちいたコネクションプーリングについて質問があります。 環境は以下です。 AP:Tomcat5.5 DB:postgres DB接続方法「DataSource」、 Context ファイル(Tomcat 5.5\conf\Catalina\localhost)を用いた接続 ---------------- Context ファイルは、以下の接続です。 <Resource name="jdbc/postgres" auth="Container" logAbandoned="true" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql******" username="***" password="**" initialSize="10" maxIdle="10" maxActive="0" maxWait="30000" removeAbandoned="true" removeAbandonedTimeout="300" /> ---------------- maxActive="0"にしているのですが、一般的なシステムの運用ではあまりないケースなのでしょうか? やはり、maxActiveに制限をかけ、制限を超えた場合は、「しばらくたってから再度実行してください。」などのエラーメッセージを設定するのが妥当でしょうか? また、制限を越えたエラーの一般的な取得方法があるなら教えてもらえませんか? 稚拙な文章で申し訳ありません。 可能な範囲でのご回答宜しくお願いします。 | ||||||||
|
投稿日時: 2007-08-27 23:35
制限しなくても正常に動く事が分かっているのなら制限しなくて良いと思います。 制限する必要があるなら当然制限に達した際の処理が必要でしょう。
制限を超えると maxWait ミリ秒待ちます。 それでも Connection が取得出来なかった場合は org.apache.commons.dbcp.SQLNestedException が投げられます。 制限を超えたエラーなのかどうかは この例外のメッセージ内容から一応分かります。 | ||||||||
|
投稿日時: 2007-08-28 00:42
アプリケーションサーバのスレッド数と、コネクションの最大数と合わせると、
基本的にはコネクションが足りないってことはありません。 基本的というのは、DB側がそもそもコネクション数をカバーしていること、 適切にプールに対してリソースが解放されていることが前提となります。 |
1