タグ

コネクションプールとtomcatに関するtakami_hirokiのブックマーク (8)

  • Tomcat5.5 で DataSource を使う | dTblog

    これまで eclipse で製造していたWebアプリケーションを、Profiler にかけるため、NetBeans に必死で移行。その結果、DataSource でコケる。 javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null' やっぱり設定をコピペするだけでは、動いてくれないらしい。ううう。 原因は Tomcat にあり。これまで Tomcat5.0 で開発していたのだけれども、NetBeans5.0 にバンドルされていたのは Tomcat5.5 だった。「0.5くらいなら大丈夫だべ」と思って強気で攻めたんだけど、だいぶ違うみたいでして。トムさん、頼むよ。 具体的には、JNDI リソースの指定方法が変わった。設定は、<ResourceParams> タグを使

    takami_hiroki
    takami_hiroki 2008/04/11
    5.0系と5.5系のコネクションプール設定の違い
  • 【トラブル大捜査線】失われたコネクションを追え!

    【第3話】Tomcatの持つコネクションプール「DBCP」 ■netstatコマンドによる確認 あるプログラムがソケットを使用してほかのプログラムと通信している場合、netstatコマンドを使用してソケットの状態を確認するといろいろなことが分かる。 早速、netstatでDBコネクションの状態を見てみると、確立済み(ESTABLISHED)状態のコネクションが、DBCPに設定している最大コネクション数と同じ数だけ存在した。Tomcatの設定を確認してみると、DBCPの最大コネクション数はTomcatの最大スレッド数と同じ値に設定してあった。つまり、スレッドが同時に複数のコネクションを使用しない限りコネクションが不足することはない。 ■リーダー「同時に1つのコネクションしか使わないはず」 アプリケーション開発のリーダーに確認したところ、「アプリケーションは同時に1つのコネクションしか使わない

    【トラブル大捜査線】失われたコネクションを追え!
  • Commons DBCP のメモ

    Author : snbhsmt at ps dot ksky dot ne dot jp Last-Modified : 2004/06/29 16:00 JST Commons DBCP について Commons DBCP (Database Connection Pool API) は、JDBC を利用して DB との接続の プーリング機能を提供する。 実際のプーリング機能は Jakarta Commons Pool API を利用している。 詳細は、アーカイブ内の README.txt や docs/ 内のソース、 あるいは以下のページ等を参照。 Jakarta Commons DBCP Home (日語訳) http://jakarta.terra-intl.com/commons/dbcp.html Jakarta Commons DBCP 1.0

    takami_hiroki
    takami_hiroki 2008/04/04
    validationQueryの実行に失敗したら、自動的にDBに再接続してくれる?
  • Java Database Connectivity (JDBC) - dbcp.BasicDataSource, Oracle and broken pipe

    I'm using the BasicDataSource from apache commons dbcp in a struts application to connect to an oracle 8.1 dbs. If the dbs is restarted (what happens pretty rarely, but the app should run for months without restart) I'm getting a broken pipe SQLException. Apparently the BasicDataSource doesn't reconnect when needed. Other databases have some parameter like autoReconnect=true, but I haven't found

    takami_hiroki
    takami_hiroki 2008/03/24
    SQLExceptionのBroken Pipeが出たときの対処法。Tomcatの設定の「validationQuery」などはちゃんと設定しないといけない。
  • Commons DBCP

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

    takami_hiroki
    takami_hiroki 2008/03/01
    PreparedStatementキャッシュを用いることで、Webアプリケーションの性能向上を図ることができる。この機能を積極的に使ってよい。
  • 【トラブル大捜査線】失われたコネクションを追え!

    【トラブル大捜査線】失われたコネクションを追え!:現場から学ぶWebアプリ開発のトラブルハック(7)(3/3 ページ) 【最終話】それが、トラブルシューティング屋の務め クローズ漏れの個所も大体の見当が付いたので、アプリケーション開発チームに確認・修正を依頼した。 アプリケーションが直るまでの間、removeAbandonedを付けたままで負荷試験を継続することにした。目的はremoveAbandonedのオーバヘッドを測定することである。logAbandonedを指定しなければstackTraceは生成されない。そのため、ある程度の性能は出るように思われた。 ■removeAbandonedの同期化 しかし、実際に測定してみたところ、思ったように性能は出なかった。CPUがほとんど使い切れなかったのだ。 ここまできたら、ついでに解析してしまうのが、トラブルシューティング屋の務めだろう。負荷

    【トラブル大捜査線】失われたコネクションを追え!
    takami_hiroki
    takami_hiroki 2008/02/26
    DBCPのパラメータを理解し、武器にする
  • @IT:Java TIPS -- JNDI活用でデータソース管理を一元化する

    データベースの接続情報は、開発環境から実行環境への移行や、アプリケーションをパッケージとして配布する際に変更する必要があります。この情報は大概「.jsp」ファイルや「.java」ファイルに分散して記述されており、実行環境への移行やパッケージとしての配布の際に、修正漏れや間違いを引き起こしやすい要因といえるでしょう。 この問題を解決する方法の1つに、JNDI(Java Naming and Directory Interface)を使って環境に依存する(かつアプリケーション内で共通して使用する)情報をアプリケーション上で一元的に管理するというテクニックがあります。JNDIを採用することで、個々の「.jsp」「.java」ファイルにいちいち接続情報を記述する必要はなくなりますし、接続先のデータベースに変更があった場合にも容易に変更が可能となります。もちろん、「.java」ファイルのコンパイルな

    @IT:Java TIPS -- JNDI活用でデータソース管理を一元化する
  • Tomcat でコネクションプール

    Tomcat のコネクションプールは Commons-dbcp と Commons-pool によって実現されています。jar は CATALINA_HOME/common/lib にあります。 設定は CATALINA_HOME/conf/server.xml で行います。 Oracle の場合の XML の設定例と Java のソース記述例を書きます。 server.xml 記述例(5.0まで) <Context path="/test" reloadable="false" docBase="test.war" autoDeploy="true"> <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/oracle"> <parame

  • 1