tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zdeněk Vráblík" <zde...@vrablik.org>
Subject Re: Oracle JDBC connection Tomcat 5.5
Date Mon, 14 May 2007 13:32:12 GMT
Hi Martin,

I have solution.

There is resource JDBC configuration which works for Tomcat 5.5.23
<Resource name="jdbcRes"
          auth="Container"
		  type="javax.sql.DataSource"
		  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
          username="user"
          password="user"
          driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:@192.168.100.119:1521:orcl"
		  accessToUnderlyingConnectionAllowed="true"
          maxActive="20" maxIdle="10" maxwait="-1"/>


When is set accessToUnderlyingConnectionAllowed to true DataSource produce
connection which implement DelegatingConnection interface.

DataSource ds = (DataSource) ctxt.lookup(poolName);
    conn       = ds.getConnection();
    Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();

dconn is OracleConnection.

There musn't be library commons-dbcp*.jar in common/lib directory,
because all classes are in jar naming-factory-dbcp.jar in package
org.apache.tomcat.dbcp.dbcp.

Thanks Rashmi and Martin for help.

Regards,
Zdenek

On 5/14/07, Zdeněk Vráblík <zdenek@vrablik.org> wrote:
> Hi Martin,
>
> thanks for help.
> I have tried your suggestion and it works fine - I am able to get
> OracleConnection.
> (I had to change String c_sUserNameKey="username"; to String
> c_sUserNameKey="user";)
>
> It works for common Connection, but I need OracleConnection interface.
> jdbc configuration:
> <Resource name="sisPool"
>          auth="Container"
>          type="javax.sql.DataSource"
>                  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
>          username="USER_51319"
>          password="USER_51319"
>          driverClassName="oracle.jdbc.driver.OracleDriver"  or
> driverClassName="oracle.jdbc.driver.OracleDriver"
>          url="jdbc:oracle:thin:@192.168.100.119:1521:orcl"
>          maxActive="20" maxIdle="10" maxwait="-1"/>
>
> But the datasource is not found if I use this configuration:
> <Resource name="sisPool"
>           auth="Container"
>           type="oracle.jdbc.pool.OracleDataSource"
>           factory="oracle.jdbc.pool.OracleDataSourceFactory"
>           username="ISMART_USER_51319"
>           password="ISMART_USER_51319"
>           driverClassName="oracle.jdbc.OracleDriver"
>           url="jdbc:oracle:thin:@192.168.100.119:1521:orcl"
>           maxActive="20" maxIdle="10" maxwait="-1"/>
>
> I have found in dbcp configuration other way to get inner connection:
> Connection conn = ds.getConnection();
>     Connection dconn = ((DelegatingConnection) conn).getInnermostDelegate();
>
> but when I get connection from Tomcat it doesn't implement
> DelegatingConnection interface.
>
> initContext = new InitialContext();
> envContext  = (Context)initContext.lookup("java:/comp/env");
> DataSource ds = (DataSource) ctxt.lookup(poolName);
>  conn       = ds.getConnection();
>
> I am not able to find any way how to get OracleConnection instead Connection.
>
> Do you have any idea?
>
> Thanks.
>
> Regards,
> Zdenek
>
> On 5/13/07, Martin Gainty <mgainty@hotmail.com> wrote:
> > make sure the driver is ok first e.g.
> > import java.sql.*;
> >
> > Properties props = new Properties();
> > String c_sUserNameKey="username";
> > String c_sPasswordKey="password";
> > String c_sDBURL ="jdbc:oracle:thin:@";
> > String c_sDriverName ="oracle.jdbc.driver.OracleDriver";
> >
> > //Instantiate driver
> > Driver c_Driver=null;
> > try
> > {
> >    c_Driver = (Driver)Class.forName( c_sDriverName ).newInstance();
> > }
> > catch(SQLException sqle)
> > {
> >  System.out.println("Cannot instantiate driver ..is it right version..is it
> > on classpath?");
> >  return;
> > }
> > //make sure Oracle listenet is operational (netstat -a | grep 1521)
> > //make SURE Oracle DB is up and listening (tnsping SID) returns successful
> > //make sure you acquire the username/password to establish connection to
> > oracle db
> > //place username,password into properties
> > props.put( c_sUserNameKey, c_sDBUser );
> > props.put( c_sPasswordKey, c_sDBPassword );
> >
> > //Get a connection
> > try
> > {
> >     Connection = c_Driver.connect( c_sDBURL, props );
> > }
> > catch ( SQLException sqlex )
> > {
> >             System.out.println( "Error connecting to database", sqlex );
> >             return;
> >  }
> >
> > //should get you started..
> > M--
> > This email message and any files transmitted with it contain confidential
> > information intended only for the person(s) to whom this email message is
> > addressed.  If you have received this email message in error, please notify
> > the sender immediately by telephone or email and destroy the original
> > message without making a copy.  Thank you.
> >
> > ----- Original Message -----
> > From: "Rashmi Rubdi" <rashmi.sub@gmail.com>
> > To: "Tomcat Users List" <users@tomcat.apache.org>
> > Sent: Sunday, May 13, 2007 3:23 PM
> > Subject: Re: Oracle JDBC connection Tomcat 5.5
> >
> >
> > > On 5/12/07, Zdeněk Vráblík <zdenek@vrablik.org> wrote:
> > >> Hi Rashmi,
> > >>
> > >> thans for reply.
> > >>
> > >> Configuration that is described in link you sent me works fine.
> > >> Problem is when I change
> > >> the datasource factory to Oracle datasource factory. Than is not
> > >> possible to find this datasource through JNDI lookup and this
> > >> connection disappear from admin console.
> > >> I think that ojdbc14.jar is newer version of oracle drivers  and it
> > >
> > > You are right, sorry you don't need classes12.jar in this case please
> > > ignore my previous post.
> > >
> > > I also happen to have oracle 10g, in order to answer your question, I
> > > was trying to see if I could set up a connection pool and then try to
> > > get OracleConnection instead of SQL Connection, I tried for almost 1/2
> > > a day so far, to get things set up but got an error
> > > "java.sql.SQLException: No more data to read from socket" that is
> > > taking too long to figure out, even after searching for answers on the
> > > Internet. I have other things to do :-) so I will give up on this for
> > > now.
> > >
> > > Anyway, there's some more instructions here :
> > > http://www.oracle.com/technology/sample_code/tech/java/oc4j/htdocs/jdbc_in_j2ee/jdbc_in_j2ee.html
> > >
> > > the above instructions are written for Oracle9iAS Container and not
> > > Tomcat, however they demonstrate how to obtain OracleConnection ----
> > > may be you'll find some useful information there unless someone on
> > > this list has a solution.
> > >
> > > You may also want to check with Oracle's Technology Forums.
> > >
> > >> works fine with standard datasource factory
> > >> org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory and
> > >> javax.sql.DataSource. It stops work when I use oracle datasource
> > >> factory
> > >>  factory="oracle.jdbc.pool.OracleDataSourceFactory" and datasource type
> > >> type="oracle.jdbc.pool.OracleDataSource".
> > >>
> > >> What I need is any solution how get OracleConnection instead of
> > >> Connection to use.
> > >> Do I miss any parameter in resource configuration?
> > >> <Resource name="sisPool"
> > >>            auth="Container"
> > >>            type="oracle.jdbc.pool.OracleDataSource"
> > >>            factory="oracle.jdbc.pool.OracleDataSourceFactory"
> > >>            username="USER_51319"
> > >>            password="USER_51319"
> > >>            driverClassName="oracle.jdbc.OracleDriver"
> > >>            url="jdbc:oracle:thin:@192.168.100.119:1521:orcl"
> > >>            maxActive="20" maxIdle="10" maxwait="-1"/>
> > >>
> > >> Thanks.
> > >> Zdenek
> > >>
> > >
> > > -Regards
> > > Rashmi
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To start a new topic, e-mail: users@tomcat.apache.org
> > To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: users-help@tomcat.apache.org
> >
> >
>
Mime
View raw message