!!!Tomcat 5.5 JNDI Datasource の利用 [Tomcat] http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html !!Database Connection Pool(DBCP) の設定 http://jakarta.apache.org/commons/dbcp/configuration.html !インストール DBCPは、Jakarta-Commonsのコンポーネントに依存している。 *Jakarta-Commons DBCP *Jakarta-Commons Collections *Jakarta-Commons Pool これらのライブラリは、ひとつのJARファイルとして、$CATALINA_HOME/common/lib/naming-factory-dbcp.jar に置かれている。 !DBコネクションのリークを防ぐ データベースコネクションプールは、データベースの接続を生成し、これを(新規作成するより効率がよいことから)再利用します。 これには、ひとつ問題があります。Webアプリケーションは、明示的にResultSetや、Stetement、Connectionを閉じる必要があります。Webアプリケーションがこれらを閉じるのに失敗すると、これらは再利用されなくなってしまいます。この状態がコネクションプールの"リーク"です。有効な接続を使い切ってしまうかもしれません。 DBCPでは、このように不正に終了したコネクションを追跡し、復帰させることができます。 不正終了したコネクションを取り除き再利用するには、以下の属性をDBCP DataSourceの設定に追加します。 removeAbandoned="true" デフォルト値はfalseです 以下の設定をすることで、以下の秒数アイドル状態のコネクションを不正終了したとみなすことができます。 removeAbandonedTimeout="60" デフォルト値は300秒です。 以下の設定を行うことで、スタックトレースログをとることができます。 logAbandoned="true" デフォルト値はfalseです。 !!Oracle 8i、9i、10g !はじめに *以前のバージョンのOracleでは、*.zipとしてドライバが提供されていたが、Tomcatで利用できるのは、*.jarのみ。 *$CATALINA_HOME/common/lib にインストールする。 * *.zip は *.jarにリネームする !Server.xmlの設定 JNDI DataSource を $CATALINA_HOME/conf/server.xml に記述する。 ContextタグをHostタグの中に記述 !web.xmlの設定 WebアプリケーションのWeb.xmlファイルに、DTDの記述順に従い以下の記述を追記。 Oracle Datasource example jdbc/myoracle javax.sql.DataSource Container !コード例 ::(1) Context initContext = new InitialContext(); Context envContext = (Context)initContext.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle"); Connection conn = ds.getConnection(); //etc. ::(2) <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> select id, foo, bar from testdata DB Test

Results

Foo ${row.foo}
Bar ${row.bar}
!!DB2 *[LinuxへのApache+Tomcat+DB2インストール|http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/tomcat.html] ---- {{include_html banner_html, "!J2EE"}}