Tomcat Oracle数据库连接池设置与使用 (转)

转载 2007年10月10日 00:35:00

近日在使用Tomcat数据库连接池的时候,在网上查了不少例子,这是本人做的一个Oracle的例子。

1.设置数据库的驱动

 
OracleJDBC驱动设置为例:

 Oracle8i
的驱动在/oracle/ora81/jdbc/lib/目录下。名字为classes12.zip

 Oracle9i
的驱动在/oracle9i/jdbc/lib/目录下,名字为ojdbc14.jar

 
将这个文件copyD:/Tomcat 4.1/common/lib 下。

 
注意,如果使用Oracle8i 的驱动,则需要在D:/Tomcat 4.1/common/lib 目录下将classes12.zip更名为classes12.jar,因为Tomcat4不认识zip的后缀名。

2.设置Tomcat的连接池数据源

 

在网上看到一种直接利用Tomcat web应用管理界面(Tomcat Web Server Administration Tool)设置的方法,我在这使用了手工改动的方式:

打开Tomcat /conf/server.xml如果是使用Eclipse中的WTP测试,请找到对应的server.xml文件)中,找到<Context>映射对,例:

<Context path="/myapp" docBase="E:/Alex/temp/myapp" debug="0" reloadable="true" crossContext="true">

</Context>

在其中加入:

<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/myoracle">

                <parameter>

                                <name>factory</name>

                                <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

                </parameter>

                <parameter>

                                <name>driverClassName</name>

                                <value>oracle.jdbc.driver.OracleDriver</value>

                </parameter>

                <parameter>

                                <name>url</name>

                                <value>jdbc:oracle:thin:@172.21.240.1:1521:itscoenr</value>

                </parameter>

                <parameter>

                                <name>username</name>

                                <value>myname</value>

                </parameter>

                <parameter>

                                <name>password</name>

                                <value>mypassword</value>

                </parameter>

                <parameter>

                                <name>maxActive</name>

                                <value>20</value>

                </parameter>

                <parameter>

                                <name>maxIdle</name>

                                <value>10</value>

                </parameter>

                <parameter>

                                <name>maxWait</name>

                                <value>10000</value>

                </parameter>                                         

</ResourceParams>

<ResourceLink global="jdbc/myoracle" name="jdbc/myoracle" type="javax.sql.DataSource"/>

               

在这添加了一个数据源,名字为jdbc/myoracle。以后是一些参数。

type”javax.sql.DataSource”;
password
,数据库用户密码;
driveClassName
,数据库驱动;
maxIdle
,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
MaxActive
,连接池的最大数据库连接数。设为0表示无限制。
maxWait
,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

 

最后添加的是一个web应用对全局连接池的引用说明,设置这个连接池的引用说明是非常重要的一步。
 
一些朋友在Tomcat4中配置连接池失败的原因大都归咎与此。还有网上一些文章说这是一个Tomcat4的一个Bug

 

全部改完之后为:

<Context path="/myapp" docBase="E:/myapp" debug="0" reloadable="true" crossContext="true">

 

<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/myoracle">

                <parameter>

                                <name>factory</name>

                                <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

                </parameter>

                <parameter>

                                <name>driverClassName</name>

                                <value>oracle.jdbc.driver.OracleDriver</value>

                </parameter>

                <parameter>

                                <name>url</name>

                                <value>jdbc:oracle:thin:@172.21.240.1:1521:itscoenr</value>

                </parameter>

                <parameter>

                                <name>username</name>

                                <value>myname</value>

                </parameter>

                <parameter>

                                <name>password</name>

                                <value>mypassword</value>

                </parameter>

                <parameter>

                                <name>maxActive</name>

                                <value>20</value>

                </parameter>

                <parameter>

                                <name>maxIdle</name>

                                <value>10</value>

                </parameter>

                <parameter>

                                <name>maxWait</name>

                                <value>10000</value>

                </parameter>                                         

</ResourceParams>

<ResourceLink global="jdbc/myoracle" name="jdbc/myoracle" type="javax.sql.DataSource"/>

 

</Context>

 

3.设置web.xml

         到此,连接池的设置就完成了。 然后需要重新启动Tomcat,这样就可以使用连接池来工作了。

        
但是,看到很多文章上说,还需要设置一下web.xml才能应用。我没有设置web.xml,连接池也可以完全使用。现在说一下web.xml的配置方法。

 

例为:

E:/myapp/WEB-INF/下的web.xml,打开,并在<web-app></web-app>中加入内容,加完后为:

<web-app>

<resource-ref>

                <description>Oracle Datasource example</description>

                <res-ref-name>jdbc/myoracle</res-ref-name>

                <res-type>javax.sql.DataSource</res-type>

                <res-auth>Container</res-auth>

</resource-ref>   

</web-app>

 

子节点说明: description,描述信息;
               res-ref-name
,参考数据源名字,同上一步的属性name
               res-type
,资源类型,”javax.sql.DataSource”
               res-auth
”Container”
               res-sharing-scope
”Shareable”

 

4.一个简单的JSP应用示例

一个简单的只有查询的JSP,内容如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>

<%@ page import="javax.naming.*"%>

<%@ page import="javax.sql.*"%>

<%@ page import="java.sql.*"%>

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<%

      DataSource ds = null;

      try{

            Context initCtx = new InitialContext();

            Context envCtx = (Context) initCtx.lookup("java:comp/env");

           

            //获取连接池对象并进行类型转换

ds = (DataSource)envCtx.lookup("jdbc/myoracle");

           

            if(ds!=null){

                  out.println("Connection is OK!");

                  Connection cn=ds.getConnection();

                  if(cn!=null){

                        out.println("cn is Ok!");

                        Statement stmt = cn.createStatement();

                        ResultSet rst = stmt.executeQuery("select ename from emp");

                        out.println("<p>rst is Ok!" + rst.next());

                        while(rst.next()){

                              out.println("<P>Ename:" + rst.getString(1));

                        }

                  stmt.close();

                  rst.close();

                  cn.close();

                  }

                  else{

                        out.println("rst Fail!");

                  }

            }

            else{

                  out.println("Fail!");

            }                

      }

      catch(Exception ne){

            out.println(ne);

      }

%>

 

</body>

</html>

 

测试成功! 

Tomcat7.0与Oracle10数据库连接池配置

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出...
  • yanmei_yao
  • yanmei_yao
  • 2012-03-10 19:44:06
  • 7231

Spring使用tomcat连接oracle的数据库连接池

1.首先配置tomcat连接池server.xml里面(不详细说了google上面很多例子)                                       maxActive      ...
  • weiyingyi0
  • weiyingyi0
  • 2006-03-28 13:48:00
  • 6296

tomcat6配置oracle数据库连接池

     网上有过许多Tomcat下配置数据库连接池的文章,看了,有的写的简单,有的复杂,这篇打算做个总结。针对tomcat6下,连接oracle。     我现在用的方法。     方法一:    ...
  • ffyn1981
  • ffyn1981
  • 2008-10-15 10:46:00
  • 481

tomcat数据库连接池设置

  • 2013年04月07日 14:20
  • 31KB
  • 下载

在tomcat中配置MySQL和oracle数据库连接池的异同

一、在tomcat中配置MySql数据库连接池 Java代码: public Connection conn = null; public Connection getConnection(...
  • shuaijunlan
  • shuaijunlan
  • 2016-04-24 21:28:11
  • 996

oracle数据库连接池的使用

数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出...
  • neubuffer
  • neubuffer
  • 2013-11-23 14:23:26
  • 3546

Tomcat 的数据库连接池设置与应用

  • 2010年04月26日 18:20
  • 30KB
  • 下载

配置tomcat数据库连接池及使用数据库连接池(hibernate数据源配置和使用)

转载自:http://blog.csdn.net/centre10/article/details/6746088 配置tomcat数据库连接池及使用数据库连接池(hibernate数据源配...
  • u012377333
  • u012377333
  • 2015-12-29 17:52:47
  • 1964

【DRP】Tomcat7Oracle数据库连接池配置

前言    最近在学习DRP,视频中用到的tomcat是5.5但是我在实践的过程中一直用的是tomcat7,...
  • sms15732621690
  • sms15732621690
  • 2017-07-16 21:49:48
  • 467

配置tomcat7自带数据库连接池

1.配置tomcat下conf/context.xml
  • woaigaolaoshi
  • woaigaolaoshi
  • 2016-07-01 14:54:48
  • 2623
收藏助手
不良信息举报
您举报文章: Tomcat Oracle数据库连接池设置与使用 (转)
举报原因:
原因补充:

(最多只允许输入30个字)