添加数据源属性 - Tomcat XML

Adding Datasource Properties - 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 等属性?我在网上完成的所有研究都显示了示例,但 none 与我正在使用的语法完全相同,并且 none 这些示例在我尝试时有效。

在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>

将其添加为资源后,您可以从您的 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;