添加数据源属性 - Tomcat XML

时间:2015-02-05 17:09:43

标签: xml oracle tomcat jdbc

以下是我的代码:

<?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等属性?我在网上完成的所有研究都显示了一些例子,但没有一个与我正在使用的语法完全相同,当我尝试它们时,这些例子都没有。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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;