Oracle 使用 Oracle Universal Connection Pool 在 Tomcat 6.0 内建立数据源

源地址:http://www.oracle.com/technetwork/cn/articles/oem/ucp-jdbc-tomcat-355431-zhs.html


方法文档:使用 Oracle Universal Connection Pool 在 Tomcat 6.0 内建立数据源

作者:Pas Apicella

2011 年 4 月发布

以下方法文档介绍如何使用 Universal Connection Pool (UCP) 作为数据源实现在 Tomcat 6.0 内建立数据源。本演示假定已安装了以下软件:


必要的环境设置

以下假定您已在计算机上安装了 Tomcat 6.0。

  1. 将 ojdbc6.jar 和 ucp.jar 复制到 $TOMCAT_HOME/lib 目录中。可以从这里下载这些 JAR 文件。
  2. 在 $TOMCAT_HOME/conf/server.xml 中添加数据源设置,如下所示。
    <!-- Define the default virtual host
     Note: XML Schema validation will not work with Xerces 2.2.
    -->
    <Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
    
     <Context docBase="demods" path="/demods" reloadable="true">
      &Resource 
           name="jdbc/UCPPool"
           auth="Container"
           factory="oracle.ucp.jdbc.PoolDataSourceImpl"
           type="oracle.ucp.jdbc.PoolDataSource"
           description="Pas testing UCP Pool in Tomcat"
           connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"
           minPoolSize="2"
           maxPoolSize="5"
           inactiveConnectionTimeout="20"
           user="scott"
           password="tiger"
           url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
                (HOST=beast.au.oracle.com)(PORT=1523))(CONNECT_DATA=
                (SERVICE_NAME=linux11gr2)))"
           connectionPoolName="UCPPool"
           validateConnectionOnBorrow="true"
           sqlForValidateConnection="select 1 from DUAL" />
     </Context>
    </Host>
    

  3. 在部署到 Tomcat 的 Web 项目中,向 web.xml 添加以下内容。
    <resource-ref>
      <res-ref-name>jdbc/UCPPool
      <res-type>javax.sql.DataSource
      <<res-auth>Container
    </resource-ref>
    
    
  4. 查询数据源的代码应如下所示。
    private DataSource getDataSource (String dataSourceLocation) throws NamingException
      {
        // Get a context for the JNDI look up
        Context ctx = new InitialContext();
        Context envContext = (Context) ctx.lookup("java:/comp/env");
          
        // Look up a data source
        javax.sql.DataSource ds
          = (javax.sql.DataSource) envContext.lookup (dataSourceLocation); 
        
        return ds;
      }
      
      private Connection getConnection (DataSource ds) throws SQLException
      {
        Connection conn = null;
        // Get a connection object
        conn = ds.getConnection();
       
        return conn;
      }
    

    注:dataSouceLocation 将为“jdbc/UCPPool”。


测试环境设置

此示例代码仅用于培训之目的,Oracle 并不提供支持。不过,代码已经过内部测试,并且其工作情况如本文所述。我们并不保证它能为您工作,因此您只有在自己的环境中进行测试之后才可以信赖此代码。

在使用之前,请仔细校对此示例代码!由于在文本编辑器、电子邮件程序包以及操作系统处理文本格式(空格、制表符和回车符)方面的差异,在您初次得到此示例代码时它可能并非处于可执行状态。请仔细检查示例代码以确保纠正此类错误。

  1. 启动 Tomcat 服务器。
    8/06/2010 11:09:54 org.apache.catalina.core.AprLifecycleListener init
    INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
    8/06/2010 11:09:55 org.apache.catalina.core.AprLifecycleListener init
    INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], ra
    ndom [true].
    8/06/2010 11:09:56 org.apache.coyote.http11.Http11AprProtocol init
    INFO: Initializing Coyote HTTP/1.1 on http-8080
    8/06/2010 11:09:56 org.apache.coyote.ajp.AjpAprProtocol init
    INFO: Initializing Coyote AJP/1.3 on ajp-8009
    8/06/2010 11:09:56 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 2183 ms
    8/06/2010 11:09:56 org.apache.catalina.core.StandardService start
    INFO: Starting service Catalina
    8/06/2010 11:09:56 org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
    8/06/2010 11:09:57 org.apache.catalina.startup.HostConfig deployDescriptor
    INFO: Deploying configuration descriptor host-manager.xml
    8/06/2010 11:09:57 org.apache.catalina.startup.HostConfig deployDescriptor
    INFO: Deploying configuration descriptor manager.xml
    8/06/2010 11:09:57 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory docs
    8/06/2010 11:09:57 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory examples
    8/06/2010 11:09:57 org.apache.catalina.startup.HostConfig deployDirectory
    INFO: Deploying web application directory ROOT
    8/06/2010 11:09:58 org.apache.coyote.http11.Http11AprProtocol start
    INFO: Starting Coyote HTTP/1.1 on http-8080
    8/06/2010 11:09:58 org.apache.coyote.ajp.AjpAprProtocol start
    INFO: Starting Coyote AJP/1.3 on ajp-8009
    8/06/2010 11:09:58 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 1756 ms
    
  2. 下载示例 WAR 文件。
  3. 将 WAR 文件放入 $TOMCAT_HOME/webapps 目录中,默认情况下该目录会自动为您部署 WAR 文件。
  4. 部署之后,按如下方式访问。
    http://<server>:<port>/demods
    
  5. 按如下方式输入详细信息,以获取若干连接。
    ucp-jdbc-tomcat-f1
  6. 单击 Test Data Source 按钮,验证输出如下所示。
    ucp-jdbc-tomcat-f2
  7. 在 Tomcat 服务器的运行位置,从 JDK 1.6 启动“jconsole”,如下所示。
    jconsole
    
  8. 连接到“org.apache.catalina.startup.Bootstrap start    3772”。
  9. 选择 MBeans 选项卡。
  10. 深入查看“oracle.ucp.admin.UniversalConnectionPoolMBean”,如下所示。

    ucp-jdbc-tomcat-f3

更多信息

Oracle Universal Connection Pool for JDBC 开发人员指南 11g 第 2 版 (11.2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值