http://seefan.3322.org/article/showArticle_4190.html
一個tomcat下有多重專案,每個項目都有一個串連池,這樣資源很是浪費,所有決定讓多重專案共用串連池,研究了半天,才搞明白,e文不好,資料也不是很準確。。。。
注意:本文在windows下的tomcat5.5測試通過,linux下還可能會有奇怪的問題歡迎一起交流。
1、在tomcat下的server.xml的GlobalNamingResources下加入共用的串連池,我這裡用的是apache的dbcp,開始也用了proxool的串連池,但總是報log版本的問題,所以棄用。
例:
<GlobalNamingResources>
<Resource
name="jdbc/dbcp/orcl/test"
auth="Container"
type="javax.sql.DataSource"
maxActive="20"
maxIdel="10"
maxWait="500"
username="test"
password="test"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@127.0.0.1:1521:test" />
<GlobalNamingResources>
2、在web項目的的META-INF目錄下加入一個Context.xml檔案,內容為
<Context reloadable="true" crossContext="true">
<ResourceLink name="jdbc/orcl" global="jdbc/dbcp/orcl/test"
type="java.sql.DataSource">
</ResourceLink>
</Context>
其實就是加了一個指向公用串連池的串連,這樣,這個項目下就可以串連公用的串連池了。
3、在hibernate的設定檔裡加入以下幾行
<property name="hibernate.connection.datasource">java:comp/env/jdbc/orcl</property>
<property name="connection.provider_class">
org.hibernate.connection.DatasourceConnectionProvider
</property>
這樣hibernate項目就可以用公用的串連池了。
配置上走了一些彎路,記下來和大家分享一下,原創哦,如用引用,請給出本文串連