Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Apache Tomcat »

Re: OracleConnectionPoolDataSource

"Julio J. Suárez Salinero"

2007-07-20

Replies:

I'll try to answer all your questions and tell you what state is the
page now.

1. I get the same results with
"oracle.jdbc.pool.OracleConnectionPoolDataSource",
"oracle.jdbc.OracleDriver" and "oracle.jdbc.driver.OracleDriver".
Currently I'm using "oracle.jdbc.OracleDriver".

2. I am importing "javax.naming.*" which includes
"javax.naming.Context", "import javax.naming.InitialContext" and
"javax.naming.NamingException". I think if I were not importing that, it
would NEVER work, so I think this is not the problem.

3. "factory" attribute is new. I have found it in google and it began to
work when I started using it.

4. I use OracleConnectionPoolDataSource because with
javax.sql.DataSource it doesn't close correctly close connections from
pool and server got to hang up.

5. con variable is of type Connection. I found this in an example in
google. May it be of type PooledConnection? If so, can I use pc variable
instead of con?

6. I've putted user="test" password="test" in context but it still
doesn't work if I don't put user and password in getPooledConnection.

Currently context.xml is this:

<Context debug="0" reloadable="true">
<Resource
  name="jdbc/test" auth="Container"
  type="oracle.jdbc.pool.OracleConnectionPoolDataSource"
  factory="oracle.jdbc.pool.OracleDataSourceFactory"
  maxActive="5" maxIdle="-1" maxWait="-1"
  removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
  driverClassName="oracle.jdbc.OracleDriver"
  url="jdbc:oracle:thin:@(protected)" />
</Context>

And code that gets the connection is this:

  Context initCtx = null;
  PooledConnection pc = null;
  Connection con = null;

  public void init()
  {
   if(pc == null)
   {
    try
    {
      initCtx = new InitialContext();
      Context ctx = (Context) initCtx.lookup("java:/comp/env");
      OracleConnectionPoolDataSource fuenteDatos =
(OracleConnectionPoolDataSource) ctx.lookup("/jdbc/ganaderia");
      pc = fuenteDatos.getPooledConnection(dbUser, dbPassword);
    }
    catch(Exception e)
    {
      String mensaje = getMessage(e);
      sc.log(mensaje);
    }
   }
   initConnection();
  }

  void initConnection()
  {
    try
    {
       con = pc.getConnection();
    }
    catch(Exception e)
    {
       sc.log(getMessage(e));
    }
  }

  public void finishConnection()
  {
    try
    {
       if(con != null)
       {
          con.close();
          con = null;
       }
    }
    catch(Exception e)
    {
       sc.log(getMessage(e));
       con = null;
    }
  }

  public void finish()
  {
    try
    {
       finishConnection();
       if(pc != null)
          pc.close();
    }
    catch(Exception e)
    {
       sc.log(getMessage(e));
    }  
  }

Currently I can browse the page normally, but when I play stress test, I
see only one connection and two users cannot log in at the same time.

Seva Popov escribi?:
> Yes, this is Oracle specific.
>
> -----Original Message-----
> From: Christopher Schultz [mailto:chris@(protected)]
> Sent: Thursday, July 19, 2007 12:24 PM
> To: Tomcat Users List
> Subject: Re: OracleConnectionPoolDataSource
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Seva,
>
> Seva Popov wrote:
>  
>> You need to use user="test" instead of username="test". This should
>> work in the context.xml file.
>>  
>
> Is this Oracle-specific? I use 'user="username"' in my <Resource>
> element and it works perfectly.
>
> - -chris
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.7 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFGn7pZ9CaO5/Lv0PARAtDYAJ994n4wU0MoNpuNiRWm5twz2q6WKACgsXbK
> npQLX/vREfNQFCo+NTLRRY8=
> =xKxF
> -----END PGP SIGNATURE-----
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@(protected)
> To unsubscribe, e-mail: users-unsubscribe@(protected)
> For additional commands, e-mail: users-help@(protected)
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: users@(protected)
> To unsubscribe, e-mail: users-unsubscribe@(protected)
> For additional commands, e-mail: users-help@(protected)
>
>
>  

---------------------------------------------------------------------
To start a new topic, e-mail: users@(protected)
To unsubscribe, e-mail: users-unsubscribe@(protected)
For additional commands, e-mail: users-help@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.