I think Oracle does have a set "number of processes" it will allow to run. 
This is aside from no. of connections. Like the DB handler, that rotates the 
listeners Oracle uses.

-----Original Message-----
From: Christopher Schultz [mailto:[EMAIL PROTECTED]
Sent: Monday, October 29, 2007 3:24 PM
To: Tomcat Users List
Subject: Re: org.apache.commons.dbcp.DbcpException:
java.sql.SQLException


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Swapnil,

Swapnil.Kale wrote:
> I'm getting org.apache.commons.dbcp.DbcpException: java.sql.SQLException
> Cannot get a connection, Connection pool exhausted. 

Sounds like you are running out of database connections.

> The database has multiple schemas running and the no. of processes are set
> to 300.

What do you mean, "no. of processes"?

> Here is the entry for the spring-servlet.
> 
>       <property name="maxActive">
>             <value>3000</value>
>         </property>

That's 3000, not 300. And it's a lot, if you ask me. How many
simultaneous HTTP connections do you support? It's foolish to have the
number of pooled connections exceed the number of HTTP connections you
are willing to accept: those extra connections are just taking up memory
and network resources.

> I don't have any other entry related to timeout/removeabondoned etc.

Given that you are running out of connections, I would recommend enabling:

removeAbandoned
removeAbaondonedTimeout
logAbandoned

> I've to restart the server frequently due to this exception (The frequency
> is once in every two days).
> 
> Am i missing any important property?  I'm not able to figure out where to
> check the closing connections (A lot of Google threads talk about close
> connections as a major reason behind the failure.)

See above. Yes, the problem is usually sloppy resource management (or
none at all) in your application's code.

> Is there any relation in no. of processes (300) set on oracle and the
> maxActive (3000) in servlet xml?

Well, Oracle will probably veto 90% of the connections you try to make
to it if you actually start using all 3000 of those connections.

> Can anybody throw some light on this issue?

Enable the debugging settings listed above and run your server normally.
You should be able to see where connections are getting list (you'll get
a full stack trace dumped for where a connection was requested from the
pool, if, after "removeAbandonedTimeout" seconds, the connection is not
returned to the pool. That will tell you where the connection was
requested. Then, follow the code starting there to see what might have
gone wrong.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHJkFl9CaO5/Lv0PARAsihAJ9WdoULOjgcfl+b2SVmls46V3uDJACgjA4J
xR9rAIfMFITeutPIQaFLVdw=
=UIpr
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to