2015-02-05 67 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;