You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Martin Knoblauch <kn...@knobisoft.de> on 2015/07/10 16:36:16 UTC

Tomcat-7 and Oracle Universal Connection Pool (UCP)

Hi,

 short question. I am in the process of moving an application from using
the Oracle JDBC pool to using UCP. I have some problems understanding the
relations between the resource definition in the context and what to put
into web.xml.

So, the context includes:

  <Resource name="jdbc/myDataSource"
        auth="Container"
        factory="oracle.ucp.jdbc.PoolDataSourceImpl"
        type="oracle.ucp.jdbc.PoolDataSource"
        description="Oracle datasource using UCP"
        connectionFactoryClassName="oracle.jdbc.pool.OracleDataSource"

        initialPoolSize="25"
        minPoolSize="15"
        maxPoolSize="210"
        maxStatements="100"
        connectionWaitInterval="200"
        timeoutCheckInterval="600"
        inactiveConnectionTimeout="100"
        abandonConnectionTimeout="600"
        validateConnectionOnBorrow="true"
        sqlForValidateConnection="select 1 from DUAL"
        connectionPoolName="MyUCPPool"
        connectionProperties="(defaultRowPrefetch=200)"

        url="jdbc:oracle:thin:@connect_info"
        user="user"
        password="passwd"
   />

What is not clear to my, what I have to put into the resource-ref in
web.xml. For the old JDBC configuration we had:

        <resource-ref>
                <description>My Data Source</description>
                <res-ref-name>jdbc/myDataSource</res-ref-name>
                <res-type>oracle.jdbc.pool.OracleDataSource</res-type>
                <res-auth>Container</res-auth>
        </resource-ref>

The "res-type" matched the "type=" from the resource definition.
Unfortunately, I never found an explanation/documentation of what the
"res-type" actually relates to. So now I see three possibilities:

1) match "type=" from the resource

     <res-type>oracle.ucp.jdbc.PoolDataSource</res-type>

2) match "connectionFactoryClassName=" from the resource

    <res-type>oracle.jdbc.pool.OracleDataSource</res-type>

3) just put in "javax.sql.DataSource" as someone suggested to me off-line

     <res-type>javax.sql.DataSource</res-type>


Now I know that I could just experiment with that. But time is scarce and
maybe someone knows the correct (or at least working :-) solution.

Thanks in advance
Martin
-- 
------------------------------------------------------
Martin Knoblauch
email: k n o b i AT knobisoft DOT de
www: http://www.knobisoft.de