Posted on 2006-12-12 15:41
月亮的太陽 閱讀(4222)
評論(0) 編輯 收藏 所屬分類:
編程
DBCP:
第一種方法:修改$CATALINA_HOME\conf\server.xml,在<GlobalNamingResources>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
然后在$CATALINA_HOME\conf\Catalina\localhost,創建應用相關的*.xml文件,在此文件的<context>中添加:
<ResourceLink
global="jdbc/dsname"
name="jdbc/dsname"
type="javax.sql.DataSourcer"/>
第二種方法:直接在$CATALINA_HOME\conf\Catalina\localhost,創建應用相關的*.xml文件,在此文件的<context>中添加:
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
還有一種是官方配置:
1.修改$CATALINA_HOME\conf\server.xml,Context對應你的web應用的目錄名,放到<host>中間:
<Context docBase="test" path="/test" debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/dsname" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="200"
driverClassName="@DB-DRIVERNAME@"
username="@DB-USERNAME@" password="@DB-PASSWORD@"
url="@DB-URL@"
defaultAutoCommit="true" removeAbandoned="true"
removeAbandonedTimeout="60" logAbandoned="true"/>
</Context>
2.在你的WEB應用的web.xml中添加:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/dsname</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第一種和第三種差不多,第一種第一段其實就是用http://localhost:8080/admin添加DataSource后生成的,要多寫一個WEB應用相關的XML來綁定連接池,第三種把這個文件集成到了server.xml中,和連接池的綁定交給了web.xml,但共同不方便的是如果TOMCAT下有多個應用,在開發中可能有的應用是不需要啟動的,那你就要去修改server.xml.
第二種方法的優點也正是另外兩種方法的缺點,個人比較喜歡第二種方法,一個是TOMCAT版本更換比較方便,是的之前備份應用相關XML就可以了;二是如果不需要啟動不相關的應用直接把文件名改一下,比如說加個.bak后綴就可以了.
C3P0:
因為TOMCAT自帶的DBCP有很多BUG,所有有時會使用C3P0來替代,配置方法和上邊的結構基本一樣,注意幾個參數名稱不一樣就可以了,另外還要把C3P0的JAR包放到classpath
<Resource name="jdbc/name" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="30" minPoolSize="1" initialPoolSize="5" acquireIncrement="2"
idleConnectionTestPeriod="60" maxIdleTime="60"
driverClass="@DB-DRIVERNAME@"
user="@DB-USERNAME@" password="@DB-PASSWORD@"
jdbcUrl="@DB-URL@"
factory="org.apache.naming.factory.BeanFactory"/>
其實還有其它的方法,另外需要注意的一點是數據庫相關的JDBC驅動要放到$CATALINA_HOME\common\lib下邊,不然會class not found!