2015-02-05 52 views
0

这里是我的代码如下所示:添加数据源属性 - Tomcat的XML

<?xml version="1.0" encoding="UTF-8"?> 
<hostCon> 
    <dataSources> 
     <jdbc name="COLL_DB"> 
     <description>Oracle Database</description> 
     <driver>oracle.jdbc.OracleDriver</driver> 
     <url>jdbc:oracle:thin:@//X.X.X.X:X/X</url> 
     <urlProperties> 
     <urlProperty> 
     <name>restrictGetTables</name> 
     <value>true</value> 
     </urlProperty> 
     </urlProperties> 
     <schema>CACS_TPR</schema> 
     <username>username</username> 
     <password>password</password> 
     </jdbc> 
    </dataSources> 
</hostCon> 

如何添加像maxactive,了maxidle等属性?我在网上做过的所有研究都展示了一些例子,但是没有一个与我正在使用的语法完全相同,而且当我尝试它们时,这些例子都没有奏效。

回答

0

在Tomcat中,您需要将其添加为新资源。
查看UCP(通用连接池)用作数据源的示例。
您可以更改工厂和类型以使用简单的OracleDataSource。

<Context docBase="UCPTomcat" path="/UCPTomcat" 
     reloadable="true" source="org.eclipse.jst.jee.server:UCPTomcat"> 
<Resource name="tomcat/UCPPool" auth="Container" 
      factory="oracle.ucp.jdbc.PoolDataSourceImpl" type="oracle.ucp.jdbc.PoolDataSource" 
      description="UCP Pool in Tomcat" connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource" 
      minPoolSize="2" maxPoolSize="60" initialPoolSize="15" autoCommit="true" 
      user="scott" password="tiger" fastConnectionFailoverEnabled="true" 
      url="jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=localhost)(PORT=1521)(PROTOCOL=tcp))(CONNECT_DATA=(SERVICE_NAME=proddb)))" /> 

<context-param> 
     <param-name>oracle.ucp.PlannedDrainingPeriod</param-name> 
     <param-value>30</param-value> 
</context-param> 

<listener> 
    <listener-class>servletUtils.SystemPropertiesHelper</listener-class>  
</listener> 
</Context> 
+0

好的,所以我已经将资源添加到context.xml。我还按照网站上的说明(http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)将resource-ref添加到web.xml中。我不确定在这里做什么。我是否将原始的jdbc连接字符串保存在hostcon.xml中? – 2015-02-12 17:20:13

0

后你将它添加为种源,你可以从你的servlet调用这个数据库资源,如下图所示。

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("tomcat/UCPPool"); 
OracleDataSource ods= (OracleDataSource)ds;