Wrox Programmer Forums
Go Back   Wrox Programmer Forums > Java > Other Java > Java Databases
|
Java Databases Discussion specific to working with Java Databases. For other Java topics, please see related Java forums. For database discussions not specific to Java, please see the Database category.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the Java Databases section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old July 18th, 2007, 11:48 AM
Registered User
 
Join Date: Jul 2007
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Default OracleConnectionPoolDataSource Problem

I'm Trying to connect a JSP tomcat-based application to Oracle using
OracleConnectionPoolDataSource and related classes. I have used
javax.sql.DataSource an it did work fine. I have made changes I need for using
that classes and when I get the DataSource it throws exception
"javax.naming.NamingException: Cannot create resource instance".

I'm using Apache Tomcat 5.5.23 for windows, Java JDK 1.5.0_05 and Oracle 9i
Release 2 (9.2.0.1.0). All for windows.

Changes I have made are these:

In context.xml:

<Context path="/test" docBase="test" debug="0"
reloadable="true" >
<Resource
   name="jdbc/test" auth="Container"
   type="oracle.jdbc.pool.OracleConnectionPoolDataSou rce"
   maxActive="0" maxIdle="-1" maxWait="-1"
   removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
   username="test" password="test"
   driverClassName="oracle.jdbc.pool.OracleConnection PoolDataSource"
   url="jdbc:oracle:thin:@192.168.1.109:1521:GLOBALDB " />
</Context>

In web.xml (only resource-ref):

<resource-ref>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>oracle.jdbc.pool.OracleConnectionPoolDataSour ce</res-type>
<res-auth>Container</res-auth>
</resource-ref>

Code that creates connection:

initCtx = new InitialContext();
ctx = (Context) initCtx.lookup("java:/comp/env");
ds = (OracleConnectionPoolDataSource) ctx.lookup("/jdbc/test");
PooledConnection pc = ds.getPooledConnection();
con = pc.getConnection();

I have searched in google and found some examples that use
oracle.jdbc.driver.OracleDriver in driverClassName. I have also tried this
option with the same results. I suppose bug is elsewhere.

I have tried to create DataSource instance in the code instead of get it from
resource. Doing this it drops no error and page works, but I don't know how can
I control maximun number of pooled connections. This is the code I have used for
that:

initCtx = new InitialContext();
OracleConnectionPoolDataSource ds = new OracleConnectionPoolDataSource();
ds.setDataSourceName("oracle.jdbc.pool.OracleConne ctionPoolDataSource");
ds.setURL(dbURL);
ds.setDescription(DS);
ds.setUser(dbUsuario);
ds.setPassword(dbPassword);
initCtx.rebind(DS, ds);
pc = ds.getPooledConnection();

But it creates only one connection and doesn't allow two users to log in at the
same time.

Please. I need help.











Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.