Tomcat
數據庫連接池配置
前言
:
? 1?
準備
mysql
的
jdbc
驅動程序
? 2?
安裝
Tomcat
默認全部裝在
D:\Server\tomcat5.0 D:\Server\tomcat5.5 D:\Server\tomcat6.0
? 3?
以
TOMCAT_HOME
代替個版本的安裝目錄
4????????
將
jdbc
驅動放入
TOMCAT_HOME\ common\lib\
下面
5????????
如果是其他數據庫的話,就是換一下
jdbc
驅動以及各種參數就可以了的
6????????
配置
tomcat
數據源時的各種參數的詳細介紹
7????????
其他設置。
1.??????
Tomcat 4.0
待添加
2.??????
Tomcat 5.0
2.1???
建一個虛擬目錄
test? (TOMCAT_HOME\webapps\)
?
可以通過
http://localhost:8080/test
訪問你的網站了
2.2???
配置
Context (
在
TOMCAT_HOME\conf\Catalina\localhost\
下
建
test.xm,)
test.xml:
<?xml version="1.0" encoding="utf-8"?>
<Context docBase="dbpool" path="/test" workDir="work\Catalina\localhost\test">
</Context>
2.3???
配置
server.xml
server.xml?
的內容
:
紅色表示加入的
(
或者通過
http://localhost:8080/admin
進行可視化配置
)
<?xml version='1.0' encoding='utf-8'?>
<Server>
? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
? <GlobalNamingResources>
??? <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
??? <Resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
??
?<Resource auth="Container" name="jdbc/mysql" type="javax.sql.DataSource"/>
??? <ResourceParams name="UserDatabase">
????? <parameter>
??????? <name>factory</name>
??????? <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
????? </parameter>
????? <parameter>
??????? <name>pathname</name>
??????? <value>conf/tomcat-users.xml</value>
????? </parameter>
??? </ResourceParams>
??
?<ResourceParams name="jdbc/mysql">
????? <parameter>
??????? <name>maxWait</name>
??????? <value>5000</value>
????? </parameter>
????? <parameter>
??????? <name>maxActive</name>
??????? <value>4</value>
????
?</parameter>
????? <parameter>
??????? <name>password</name>
??????? <value>198395</value>
????? </parameter>
????? <parameter>
??????? <name>url</name>
??????? <value>jdbc:mysql://localhost:3306/study?autoReconnect=true</value>
????? </parameter>
????? <parameter>
??????? <name>driverClassName</name>
??????? <value>com.mysql.jdbc.Driver</value>
????? </parameter>
????? <parameter>
??????? <name>maxIdle</name>
???????
<value>2</value>
????? </parameter>
????? <parameter>
??????? <name>username</name>
????
???<value>sa</value>
????? </parameter>
??? </ResourceParams>
? </GlobalNamingResources>
? <Service name="Catalina">
??? <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" port="8080" redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
??? </Connector>
??? <Connector port="8009" protocol="AJP/1.3" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
??? </Connector>
??? <Engine defaultHost="localhost" name="Catalina">
????? <Host appBase="webapps" name="localhost">
??????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"/>
????? </Host>
????? <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"/>
????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
???
</Engine>
? </Service>
</Server>
?
?
2.4???
配置
虛擬目錄命名的
test.xml
test.xml:
紅色表示加入的
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="testds" path="/testds" workDir="work\Catalina\localhost\testds">
<Resource name="jdbc/mysql" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://127.0.0.1:3306/study?useUnicode=true</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value>198395</value>
</parameter>
</ResourceParams>
</Context>
配置完畢
?
3.??????
Tomcat 5.5
3.1???
建虛擬目錄
test(
在
TOMCAT_HOME/webapp
或者其地方
)
?
可以通過
http://localhost:8080/test
訪問你的網站了
3.2???
配置
server..xml(
或者可以通過
http://localhost:8080/admin
來可視化界面來完成
)
server.xml
內容
紅色是加入的內容
<?xml version="1.0" encoding="UTF-8"?>
<Server>
? <Listener className="org.apache.catalina.core.AprLifecycleListener"/>
? <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
? <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
? <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
? <GlobalNamingResources>
??? <Environment
????? name="simpleValue"
????? type="java.lang.Integer"
????? value="30"/>
??? <Resource
????? auth="Container"
????? description="User database that can be updated and saved"
????? name="UserDatabase"
????? type="org.apache.catalina.UserDatabase"
????? pathname="conf/tomcat-users.xml"
????? factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
??
?<Resource
????? name="jdbc/mysql"
????? type="javax.sql.DataSource"
????? password="198395"
????? driverClassName="com.mysql.jdbc.Driver"
????? maxIdle="2"
????? maxWait="5000"
????? username="sa"
?
????url="jdbc:mysql://localhost:3306/study?autoReconnect=true"
????? maxActive="4"/>
? </GlobalNamingResources>
? <Service
????? name="Catalina">
??? <Connector
??????? port="8080"
??????? redirectPort="8443"
??????? minSpareThreads="25"
??????? connectionTimeout="20000"
??????? maxSpareThreads="75"
??????? maxThreads="150">
??? </Connector>
??? <Connector
??????? port="8009"
??????? redirectPort="8443"
??????? protocol="AJP/1.3">
??? </Connector>
??? <Engine
??????? defaultHost="localhost"
??????? name="Catalina">
????? <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
????? <Host
????????? appBase="webapps"
????????? name="localhost">
?????
</Host>
??? </Engine>
? </Service>
</Server>
?
3.3???
配置
Context (
在
TOMCAT_HOME\conf\Catalina\localhost\
下
建
test.xml
與項目名字一樣
)
? test.xml ?
紅色表示新加入的
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/test" docBase="test" reloadable="true" crossContext="true" debug="0" >
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="198395" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/study?useUnicode=true"/>
</Context>
4.??????
Tomcat 6.0
?
5.??????
測試用例
?
?
DatasourceCon.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Test of Tomcat ?connection pool</title>
</head>
<body>
<%
out.print("strat test connection pool!<br/>");
try{
?Context initCtx = new InitialContext();
?Context ctx = (Context) initCtx.lookup("java:comp/env");
?Object obj = (Object) ctx.lookup("jdbc/mysql");
?DataSource ds = (javax.sql.DataSource)obj;
?Connection conn = ds.getConnection();
?out.print("tomcat mysql connection pool runs perfectly!");
?conn.close();
}
catch(Exception ex){
?out.print(ex.getMessage());
?ex.printStackTrace();
}
%>
</body>
</html>
6.??????
總結
好長時間沒有寫這個了,最近因為項目的需要,根據以前配置過的,現在重新配置一下,然后寫成詳細文檔!