タグ

JDBCに関するMAXIMUM-PROのブックマーク (3)

  • Commons DBCP

    Commons DBCP は、データベースのコネクション・プーリングを扱うライブラリです。 Tomcat で標準採用されています。 動作説明 動作を簡単に説明します。 クライアントから接続要求が発生した場合 … getConnection() 1. DBCPは、プール内に空き接続があるか確認 2. あればそれを返す。この時その接続は アクティブ となる 3. プール内に空き接続が無ければ、新たに接続を作って返す クライアントから切断要求が発生した場合 … conn.close() 1. 切断要求のあった接続をプール内に保管する。この時その接続は アイドル となる 2. もしプール内に maxIdle 以上の接続が溜まったら、それ以上にならないように接続を削除する 接続監視スレッド DBCPには接続監視スレッドというものが存在します。 これは一定時間毎にプール内のアイドル接続をチェックするも

  • Tomcatのコネクションを再接続

    いっつも忘れちゃうから残します。 以下の設定を加えることでプールされているコネクションの接続チェックしてくれます。 (切断されちゃってた場合、再接続してくれます。) Tomcatのと言うより、DBCPのってのが正しいのかな? testOnBorrow="true" validationQuery="select 1 from dual" 実際の定義ファイルでは↓こんな感じかな。 <Resource name="jdbc/repositoryDataSource" auth="Container" type="javax.sql.DataSource" maxActive="20" maxIdle="10" minIdle="2 initialSize="2" maxWait="10000" testOnBorrow="true" validationQuery="select 1 from

  • MySQL Connector-Jでの再接続 - Weblog on mebius.tokaichiba.jp

    かつてJR横浜線 十日市場駅近くのMebius (CPU:Pentium 150MHz)より発信していたウェブログです。 JDBCのDriverManager#getConnectionによるデータベースへの接続は結構時間がかかるので、短時間に何度もDBにアクセスする場合は、Connectionオブジェクトを保持したい。 しかし、MySQLのデフォルト設定の動作では、DBへの接続は8時間使われないと切られてしまう。常駐型のservletなどの連続運転のアプリでは、途中でこのコネクションが切れることがあり得る。この時間を変更することもできるらしいが、いつか切れるので、それで解決にはならない。従って、切れれば再接続する必要がある。 JDBCアプリ側で再接続する場合、DBへの接続が有効か無効かを知る術が問題になる。接続が切れた後のクエリ送信時の例外はSocketクラスのIOExceptionであ

    MySQL Connector-Jでの再接続 - Weblog on mebius.tokaichiba.jp
  • 1