Tomcat配置SQLServer連接池 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- Tomcat配置SQLServer連接池 (http://www.webasp.net/article/17/16930.htm) |
| -- 作者:未知 -- 發佈日期: 2005-03-10 |
| 1. 進入tomcat目錄下的conf文件夾目錄裡,找到Server.xml
在tomcat的Server.xml文件中在</Context>標籤與</Host>標籤裡,定議連接語句,格式如下 <!—path定議你的應用程序的目錄所 ,/DBTest表示在Tomcat Webapps目錄下a <!—docBase=」DBTest」 表示你執行止程序時路徑名稱,例如以下的執行路徑就是http://localhost:8080/DBTest--> <Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> <!-- maxActive: 連接池的最大數量,要確保有足夠的連接數--> <!-- maxIdle: 最大空閒連接數,設置為-1即表示不限制--> <!-- maxWait:最長等待連接時間(最大等待連接池反回可用的時間), 以納秒為單位,即設為10000相等於10秒,如果設置成-1表示不確定--> <!-- username and password: 連接數據庫使用的帳號與密碼 --> <!-- driverClassName:連接數據庫的驅動程序,如SQLServer就是 com.microsoft.jdbc.sqlserver.SQLServerDriver.--> <!-- url: 連接數據庫路徑,如 jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=KB_Rate--> <Resource name=" Default_JDBC " auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="javauser" password="javadude" driverClassName=" com.microsoft.jdbc.sqlserver.SQLServerDriver " url=" jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=KB_Rate""/> </Context> 配置完成後,在DBTest目錄下添加一個Test文件,如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%@ page import="javax.sql.*"%> <%@ page import="javax.naming.*"%> <% Connection conn = null; Context initCtx = new InitialContext(); if (initCtx == null) throw new Exception("不能獲取Context!"); Context ctx = (Context) initCtx.lookup("java:comp/env"); Object obj = (Object) ctx.lookup("/Default_JDBC ");//獲取連接池對像 javax.sql.DataSource ds = (javax.sql.DataSource) obj; //類型轉換 conn = ds.getConnection(); Statement stmt = conn.createStatement(); PreparedStatement ps=conn.prepareStatement("select * from FinalOrderdata"); ResultSet rs=ps.executeQuery(); while(rs.next()){ out.println(rs.getString(1)+"<BR>"); i++; } rs.close(); stmt.close(); conn.close(); out.println("連接池測試成功"+i); 到於TOMCAT5.0版本的設置也是差不多,不過在Server.xml中添加連接池設置語句上有所有不,可參考 http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html 其它操作也是差不多, <Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> <Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/> <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/TestDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit. --> <parameter> <name>maxActive</name> <value>100</value> </parameter> <!-- Maximum number of idle dB connections to retain in pool. Set to -1 for no limit. See also the DBCP documentation on this and the minEvictableIdleTimeMillis configuration parameter. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <!-- MySQL dB username and password for dB connections --> <parameter> <name>username</name> <value>javauser</value> </parameter> <parameter> <name>password</name> <value>javadude</value> </parameter> <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next if you want to use this driver - we recommend using Connector/J though <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> --> <!-- Class name for the official MySQL Connector/J driver --> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. --> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/javatest?autoReconnect=true</value> </parameter> </ResourceParams> </Context> 有不足的地方,請各為指正! 還有,的就是請大蝦門可以告訴一下小弟,如何設置法才能讓連接池做到最高效,因為我試過用TOMCAT連接池連池,發現比較慢,反應較久,我不知道設錯了那裡,,!!我的設置如下: <Context path="/KB_Rate" docBase="/KB_Rate" debug="5" reloadable="true" crossContext="true"> <Resource name="Default_JDBC" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="1234" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=KB_Rate"/> </Context> |
| webasp.net |