源地址: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 内建立数据源。本演示假定已安装了以下软件:
- Oracle JDBC 驱动程序 11.2.0.1
- UCP 11.2.0.1
- Oracle Database 11g 第 2 版 (11.2.0.1)
- Apache Tomcat 6.0.26
- JDK 1.6
必要的环境设置
以下假定您已在计算机上安装了 Tomcat 6.0。
- 将 ojdbc6.jar 和 ucp.jar 复制到 $TOMCAT_HOME/lib 目录中。可以从这里下载这些 JAR 文件。
- 在 $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>
- 在部署到 Tomcat 的 Web 项目中,向 web.xml 添加以下内容。
<resource-ref> <res-ref-name>jdbc/UCPPool <res-type>javax.sql.DataSource <<res-auth>Container </resource-ref>
- 查询数据源的代码应如下所示。
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 并不提供支持。不过,代码已经过内部测试,并且其工作情况如本文所述。我们并不保证它能为您工作,因此您只有在自己的环境中进行测试之后才可以信赖此代码。
在使用之前,请仔细校对此示例代码!由于在文本编辑器、电子邮件程序包以及操作系统处理文本格式(空格、制表符和回车符)方面的差异,在您初次得到此示例代码时它可能并非处于可执行状态。请仔细检查示例代码以确保纠正此类错误。
- 启动 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
- 下载示例 WAR 文件。
- 将 WAR 文件放入 $TOMCAT_HOME/webapps 目录中,默认情况下该目录会自动为您部署 WAR 文件。
- 部署之后,按如下方式访问。
http://<server>:<port>/demods
- 按如下方式输入详细信息,以获取若干连接。
- 单击 Test Data Source 按钮,验证输出如下所示。
- 在 Tomcat 服务器的运行位置,从 JDK 1.6 启动“jconsole”,如下所示。
jconsole
- 连接到“org.apache.catalina.startup.Bootstrap start 3772”。
- 选择 MBeans 选项卡。
- 深入查看“oracle.ucp.admin.UniversalConnectionPoolMBean”,如下所示。