win2000+Tomcat5.0.27+Oracle8.1.7配置连接池

【方法一】 在Tomcat4中,配置连接池,常见的就是在server.xml和web.xml中作相应配置。在针对单个项目文件情况下,Tomcat5中我们可以不在server.xml中配置Context(实际上,我们在server.xml中默认情况下没有看见Context标记),可以在\jakarta-tomcat-5.0.27\conf\Catalina\localhost下针对具体的文件夹名.xml(如:我的是blog.xml)中配置Context,这样也就免去了在web.xml中还要配置。

 1<context displayname="Cactus Blog Web Application 1.0" docbase="F:\jakarta-tomcat-5.0.27\webapps\blog" path="/blog" workdir="work\Catalina\localhost\blog">
 2<resource auth="Container" description="Oracle DataBase" name="jdbc/blog" type="javax.sql.DataSource"></resource>
 3<resourceparams name="jdbc/blog">
 4<parameter>
 5<name>factory</name>
 6<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
 7</parameter>
 8<parameter>
 9<name>maxWait</name>
10<value>-1</value>
11</parameter>
12<parameter>
13<name>maxActive</name>
14<value>10</value>
15</parameter>
16<parameter>
17<name>password</name>
18<value>。。</value>
19</parameter>
20<parameter>
21<name>url</name>
22<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=blog</value>
23</parameter>
24<parameter>
25<name>driverClassName</name>
26<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
27</parameter>
28<!--对应oracle参数 
29
30<parameter>   
31<name>url</name>   
32<value>jdbc:oracle:thin:@localhost:1521:mydata</value>   
33</parameter>   
34<parameter>   
35<name>driverClassName</name>   
36<value>oracle.jdbc.driver.OracleDriver</value>   
37</parameter>
38
39\-->
40<parameter>
41<name>maxIdle</name>
42<value>10</value>
43</parameter>
44<parameter>
45<name>username</name>
46<value>sa</value>
47</parameter>
48</resourceparams>
49</context>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
总结:Tomcat5中,可以不在server.xml和web.xml中配置就能实现连接池配置;这应该是Tomcat5的功能相对Tomcat4的提高,有些朋友在Tomcat5中(使用在Tomcat4中配置方法)来配置连接池不能正常使用,可以采用这个方法,更快捷!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

【方法二】 看到关注这方面内容人比较多,考虑到各人理解层度不一样,现把 **_ 常见配置方式 _ ** 具体步骤也增加上来(tomcat-5.0.27),对tomcat5都适用。

第一步:在tomcat的管理员界面中设置Data Source(common\lib下增加oracle驱动:classes12.jar.classes12-for oracle8.jar)
JNDI Name: jdbc/mydata
Data Source URL: jdbc:oracle:thin:@localhost:1521:mydata
JDBC Driver Class: oracle.jdbc.driver.OracleDriver
User Name: 。。。 //如system
Password: 。。。//如manager
Max. Active Connections: 4
Max. Idle Connections:2
Max. Wait for Connection: 5000
Validation Query:
第二步:在\jakarta-tomcat-5.0.27\webapps\DeoWeb\WEB-INF的web.xml配置

 1<web-app>
 2<display-name>My Web Application</display-name>
 3<description>   
 4MY homesite.   
 5</description>
 6<resource-ref>
 7<description>   
 8oracle DataSource   
 9</description>
10<res-ref-name>   
11jdbc/mydata   
12</res-ref-name>
13<res-type>   
14javax.sql.DataSource   
15</res-type>
16<res-auth>   
17Container   
18</res-auth>
19</resource-ref>
20</web-app>

第三步:启动tomcat后conf\confserver.xml自动变成了这个样子(自动发布为全局连接池):

 1<server>
 2<listener classname="org.apache.catalina.mbeans.ServerLifecycleListener"></listener>
 3<listener classname="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"></listener>
 4<globalnamingresources>
 5<environment name="simpleValue" type="java.lang.Integer" value="30"></environment>
 6<resource auth="Container" description="User database that can be updated and saved" name="UserDatabase" type="org.apache.catalina.UserDatabase"></resource>
 7<resource name="jdbc/mydata" type="javax.sql.DataSource"></resource>
 8<resourceparams name="UserDatabase">
 9<parameter>
10<name>factory</name>
11<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
12</parameter>
13<parameter>
14<name>pathname</name>
15<value>conf/tomcat-users.xml</value>
16</parameter>
17</resourceparams>
18<resourceparams name="jdbc/mydata">
19<parameter>
20<name>maxWait</name>
21<value>5000</value>
22</parameter>
23<parameter>
24<name>maxActive</name>
25<value>4</value>
26</parameter>
27<parameter>
28<name>password</name>
29<value>manager</value>
30</parameter>
31<parameter>
32<name>url</name>
33<value>jdbc:oracle:thin:@localhost:1521:mydata</value>
34</parameter>
35<parameter>
36<name>driverClassName</name>
37<value>oracle.jdbc.driver.OracleDriver</value>
38</parameter>
39<parameter>
40<name>maxIdle</name>
41<value>2</value>
42</parameter>
43<parameter>
44<name>username</name>
45<value>system</value>
46</parameter>
47</resourceparams>
48</globalnamingresources>
49<service name="Catalina">
50<connector acceptcount="100" connectiontimeout="20000" disableuploadtimeout="true" maxsparethreads="75" maxthreads="150" minsparethreads="25" port="8080" redirectport="8443">
51</connector>
52<connector port="8009" protocol="AJP/1.3" protocolhandlerclassname="org.apache.jk.server.JkCoyoteHandler" redirectport="8443">
53</connector>
54<engine defaulthost="localhost" name="Catalina">
55<host appbase="webapps" name="localhost">
56<context docbase="." path=" "></context>
57<logger classname="org.apache.catalina.logger.FileLogger" prefix="localhost_log." suffix=".txt" timestamp="true"></logger>
58</host>
59<logger classname="org.apache.catalina.logger.FileLogger" prefix="catalina_log." suffix=".txt" timestamp="true"></logger>
60<realm classname="org.apache.catalina.realm.UserDatabaseRealm"></realm>
61</engine>
62</service>
63</server>

第四步:写了个简单jsp测试:

1@ page contentType="text/html; charset=iso-8859-1" 
1@ page import="java.sql.*"
1@ page import="javax.sql.*"
1@ page import="javax.naming.*"
1<html>
2<head>
3<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
4<title></title>

out.println("Test begin!");

try{

InitialContext ctx=new InitialContext();
out.println("First success!");

DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/mydata");
out.println("Second success!");

Connection conn = ds.getConnection();
out.println("Third success!");
Statement stmt = conn.createStatement();

String strSql = "select * from sys.signon";

ResultSet rs = stmt.executeQuery(strSql);

while(rs.next()){

out.print(rs.getString(1)); }

out.print("我的测试结束");

}

catch(Exception ex){

out.print("There is exception:"+ex.getMessage());

ex.printStackTrace();

}

1
2</head>
3<body>
4</body></html>
Published At
Categories with 数据库类
Tagged with
comments powered by Disqus