JSP中tomcat的SQL Server2000數據庫連接池的配置
JSP中tomcat的SQL Server2000數據庫連接池的配置環境:
1. 數據庫:Microsoft SQL Server 2000
2. 數據庫驅動程序:net.sourceforge.jtds.jdbc.Driver
JNDI(Java Naming and Directory Interface)概述:
Tomcat4(5)提供了一個與Java Enterprise Edition應用服務相兼容的JNDI--InitialContext實現實例。它的初始數據設置在$CATALINA_HOME/conf /server.xml文件里,并可能在網頁應用環境描述(/WEB-INF/web.xml)里被下列元素引用:
1)
2)
3)
InitialContext在網頁應用程序初始化時被設置,用來支持網頁應用程序組件。所有的入口和資源都放在JNDI命名空間里的java:comp/env段里。點擊下列網址以獲取更多信息:
1) Java命名和目錄接口(Java Naming and Directory Interface)
2) J2EE平臺說明(J2EE Platform Specification)
設置JNDI資源
設置JNDI資源要在$CATALINA_HOME/conf/server.xml文件里使用下列標志符:
1)
2)
3)
4)
上述這些標志符必須放在
此外,設在網頁應用環境描述(Web Application Descriptor)(/WEB-INF/web.xml)里的名字和值也在初始環境(Initial Context)里被設置,當被
全局變量能在
數據庫連接池概述:
數據庫連接是一種關鍵的有限的昂貴的資源,這一點在多用戶的網頁應用程序中體現得尤為突出。對數據庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性,影響到程序的性能指標。數據庫連接池正是針對這個問題提出來的。
數據庫連接池負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯提高對數據庫操作的性能。
數據庫連接池在初始化時將創建一定數量的數據庫連接放到連接池中,這些數據庫連接的數量是由最小數據庫連接數來設定的。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。連接池的最大數據庫連接數量限定了這個連接池能占有的最大連接數,當應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中。數據庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素:
1)最小連接數是連接池一直保持的數據庫連接,所以如果應用程序對數據庫連接的使用量不大,將會有大量的數據庫連接資源被浪費;
2)最大連接數是連接池能申請的最大連接數,如果數據庫連接請求超過此數,后面的數據庫連接請求將被加入到等待隊列中,這會影響之后的數據庫操作。
3)如果最小連接數與最大連接數相差太大,那么最先的連接請求將會獲利,之后超過最小連接數量的連接請求等價于建立一個新的數據庫連接。不過,這些大于最小連接數的數據庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復使用或是空閑超時后被釋放。
配置Tomcat數據庫連接池的前提:
1. 必須裝有Java運行環境;
2. 必須有SQL Server2000數據庫服務器(可以不在本地);
3. 必須有jtds.jar,并將它放在$CATALINA_HOME/common/lib目錄下(只能是這里)。使用它是因為Microsoft公司的Java SQL Server驅動程序不支持二次查詢,可到網上搜到。目前使用的是jtds-0.6.jar。
在$CATALINA_HOME/conf/server.xml里設置數據庫連接池:
下面是配置的代碼,必須放在
- <Context path="/quality" docBase="quality" debug="0" reloadable
="true" crossContext="true">- <Logger className="org.apache.catalina.logger.FileLogger" prefix
="localhost_quality_log." suffix=".txt" timestamp="true"/>- <Resource name="jdbc/connectDB" auth="Container"
type="javax.sql.DataSource"/>- <ResourceParams name="jdbc/connectDB">
- <parameter>
- <name>maxActive< SPAN>name>
- <value>100< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>maxIdle< SPAN>name>
- <value>30< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>maxWait< SPAN>name>
- <value>10000< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>removeAbandoned< SPAN>name>
- <value>true< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>removeAbandonedTimeout< SPAN>name>
- <value>60< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>logAbandoned< SPAN>name>
- <value>false< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>factory< SPAN>name>
- >
- <value>org.apache.commons.dbcp.BasicDataSourceFactory< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>username< SPAN>name>
- <value>Iorishinier< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>password< SPAN>name>
- <value>mypasswd< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>driverClassName< SPAN>name>
- <value>net.sourceforge.jtds.jdbc.Driver< SPAN>value>
- < SPAN>parameter>
- <parameter>
- <name>url< SPAN>name>
- <value>jdbc:jtds:sqlserver://127.127.127.127:1433/Northwind< SPAN>value>
- < SPAN>parameter>
- < SPAN>ResourceParams>
- < SPAN>Context>
下面是一些參數的說明:
- <Context path="/quality" docBase="quality" debug="0"
reloadable="true" crossContext="true">
1) path 指定路徑,這里設定的是$CATALINA_HOME/webapps下的quality目錄;
2) docBase 文件根目錄。
3) reloader 當網頁被更新時是否重新編譯。
4) maxActive 連接池的最大數據庫連接數。設為0表示無限制。
5) maxIdle 數據庫連接的最大空閑時間。超過此空閑時間,數據庫連接將被標記為不可用,然后被釋放。設為0表示無限制。
6) maxWait 最大建立連接等待時間。如果超過此時間將接到異常。設為-1表示無限制。
7) removeAbandoned 回收被遺棄的(一般是忘了釋放的)數據庫連接到連接池中。
8) removeAbandonedTimeout 數據庫連接過多長時間不用將被視為被遺棄而收回連接池中。
9) logAbandoned 將被遺棄的數據庫連接的回收記入日志。
10) driverClassName JDBC驅動程序。
11) url 數據庫連接字符串
在$CATALINA_HOME/webapps/quality/WEB-INF/web.xml里設置被引用的資源:
下面是配置代碼,必須放在
- <resource-ref>
- <description>connectDB test< SPAN>description>
- <res-ref-name>jdbc/connectDB< SPAN>res-ref-name>
- <res-type>javax.sql.DataSource< SPAN>res-type>
- <res-auth>Container< SPAN>res-auth>
- < SPAN>resource-ref>
下面是一下參數的必要說明:
1) description 對被引用的資源的描述。
2) res-ref-name 資源名稱。見上面的
3) res-type 資源類型。見上面的
在JSP中使用資源:
這是在$CATALINA_HOME/webapps/quality下的某級子目錄里的jsp網頁文件部分代碼:
- <%@ page contentType="text/html;charset=GBK"%>
- <%@ page errorPage="error.jsp"%>
- <%@ page import="javax.naming.*"%>
- <%@ page import="javax.sql.*"%>
- <%@ page import="java.sql.*"%>
- <html>
- <head>
- < SPAN>head>
- <body>
- <%
以上是JSP中tomcat的SQL Server2000數據庫連接池的配置
【編輯推薦】