Hi all,
unfortunately this solution shouldn't be used.
The dConn connection mustn't be closed directly, but the original
connection from datasource should be closed.
...
Regards,
Zdenek
On 5/14/07, Zdeněk Vráblík <[EMAIL PROTECTED]> wrote:
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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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" <[EMAIL PROTECTED]>
> > To: "Tomcat Users List" <[email protected]>
> > 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 <[EMAIL PROTECTED]> 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: [email protected]
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>