數(shù)據(jù)庫連接池大小如何設(shè)置?
一,Tomcat配置數(shù)據(jù)源:
方式一:在WebRoot下面建文件夾META-INF,里面建一個文件context.xml,內(nèi)容如下:
<Context>
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb" />
</Context>
方式二:在tomcat6.0的目錄conf下面的context.xml中,修改原來的context標(biāo)簽,改成內(nèi)容如下:
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb" />
</Context>
方式三:在配置虛擬目錄時,也就是在配置conf下面的server.xml時,在context標(biāo)簽內(nèi)改成如下形式:
<Context path="/WebRoot" reloadable="true" docBase="E:/workspace/DataSource/WebRoot" >
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
username="root" password="111111" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/testdb" />
</Context>
配置文件中Resource標(biāo)簽中各屬性的含義:
driverClassName - JDBC 所用到的數(shù)據(jù)庫驅(qū)動的類全名.
maxActive - 連接池在同一時刻內(nèi)所提供的最大活動連接數(shù)。
maxIdle - 連接池在空閑時刻保持的最大連接數(shù).
maxWait - 當(dāng)發(fā)生異常時數(shù)據(jù)庫等待的最大毫秒數(shù) (當(dāng)沒有可用的連接時).
password - 連接數(shù)據(jù)庫的密碼.
url - 連接至驅(qū)動的URL. (為了向后兼容, DRIVERNAME也被允許.)
user - 數(shù)據(jù)庫用戶名.
各種配置方式的范圍也應(yīng)該是不一樣的。我在這就不細說了,總之就是在Context標(biāo)簽下面配置個Resource標(biāo)簽即可。
測試代碼:
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
System.out.println(ds.getConnection());
打印出來不是null應(yīng)該就成功了。
注意,測試的時候要在tomcat內(nèi)測試,也就是要在TOMCAT這個容器內(nèi)(不要閑麻煩,寫個簡單的JSP頁面測下,用個<%...%>就可以了,相當(dāng)簡單的)。