Hi Shapira y and tomcat users, #You're putting too many things in one message. ;) Can't help that...;), in fact I would like to add some more things here :).
#So with your configuration, you'd always have between 30*12 = 360 and #100*12 = 1200 open database connections. Is this really what you want? #If your DB can't handle 1000 connections, much less 1200, configure your #pools so that they don't reach this max. Yeah right but there is a catch here. Because we are using the dynamic scheme the connections can go beyond the 100 connections which is the max connections. Seems, the problem comes up when the number of connections cross 250 on any individual tomcat. What we want is whenever there is this surge of load the connection pool should be able to request the same. I don't have pointers which says that 200-250 connections size of oracle connection pool is not supported by classes12.jar and only have observation. #Not sure is right. Threads could be waiting on a lot of things, and #it's not always bad to wait (e.g. idle HTTP processor threads). Which #threads were waiting and was it for a common monitor address? Why I thought that it was waiting for closing the logical connections was because the thread dump had some pointers and this time I am enclosing those snapshots. "Thread-360" prio=5 tid=0x00ac4f50 nid=0xc99 waiting for monitor entry [b1080000..b1081998] at oracle.jdbc.pool.OracleConnectionEventListener.connectionClosed(OracleCo nnectionEventListener.java:125) - waiting to lock <0xd4d2c820> (a oracle.jdbc.pool.OracleConnectionEventListener) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnect ion.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnect ion.java:445) - locked <0xcc4f5700> (a oracle.jdbc.pool.OraclePooledConnection) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2 900) - locked <0xcc4f57c0> (a oracle.jdbc.driver.OracleConnection) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) - locked <0xcc4f57c0> (a oracle.jdbc.driver.OracleConnection) "Thread-360" prio=5 tid=0x00ac4f50 nid=0xc99 waiting for monitor entry [b1080000..b1081998] at oracle.jdbc.pool.OracleConnectionEventListener.connectionClosed(OracleCo nnectionEventListener.java:125) - waiting to lock <0xd4d2c820> (a oracle.jdbc.pool.OracleConnectionEventListener) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnect ion.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnect ion.java:445) - locked <0xcc4f5700> (a oracle.jdbc.pool.OraclePooledConnection) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2 900) - locked <0xcc4f57c0> (a oracle.jdbc.driver.OracleConnection) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) - locked <0xcc4f57c0> (a oracle.jdbc.driver.OracleConnection) "Thread-358" prio=5 tid=0x00ac37a0 nid=0xc97 waiting for monitor entry [b1280000..b1281998] at oracle.jdbc.pool.OracleConnectionEventListener.connectionClosed(OracleCo nnectionEventListener.java:125) - waiting to lock <0xd4d2c820> (a oracle.jdbc.pool.OracleConnectionEventListener) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnect ion.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnect ion.java:445) - locked <0xc51d5eb8> (a oracle.jdbc.pool.OraclePooledConnection) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2 900) - locked <0xc51d5f78> (a oracle.jdbc.driver.OracleConnection) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) - locked <0xc51d5f78> (a oracle.jdbc.driver.OracleConnection) "Thread-357" prio=5 tid=0x00ac30c0 nid=0xc96 runnable [b1380000..b1381998] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:183) at java.io.BufferedInputStream.read1(BufferedInputStream.java:222) at java.io.BufferedInputStream.read(BufferedInputStream.java:277) - locked <0xc73bdcf0> (a java.io.BufferedInputStream) "Thread-356" prio=5 tid=0x00ac2a38 nid=0xc95 waiting for monitor entry [b1480000..b1481998] at oracle.jdbc.pool.OracleConnectionEventListener.connectionClosed(OracleCo nnectionEventListener.java:125) - waiting to lock <0xd4d2c820> (a oracle.jdbc.pool.OracleConnectionEventListener) at oracle.jdbc.pool.OraclePooledConnection.callListener(OraclePooledConnect ion.java:482) at oracle.jdbc.pool.OraclePooledConnection.logicalClose(OraclePooledConnect ion.java:445) - locked <0xc9ffd1c8> (a oracle.jdbc.pool.OraclePooledConnection) at oracle.jdbc.driver.OracleConnection.logicalClose(OracleConnection.java:2 900) - locked <0xc9ffd288> (a oracle.jdbc.driver.OracleConnection) at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:1418) - locked <0xc9ffd288> (a oracle.jdbc.driver.OracleConnection) I have given this a close look this time and seems that some of these threads are waiting to accquire a lock on oracle.jdbc.pool.OracleConnectionEventListener object ( <0xd4d2c820> - not sure if this the object ID or objects's memory address ). It seems that the reaper thread (not sure !!! may be have to decompile the oracle driver's code) creates this oracle.jdbc.pool.OracleConnectionEventListener object and because its dead due to some reasons all the threads continue in their wait state to accquire the lock on this. If this is a known bug then VOILA!!!. #What is killing the oracle reaper? If I had known this, I would be a happy man... :-< Right now I am investing my energies to prove a lot of things and this being one of them. #What is the date of the drivers in classes12.zip? And you've renamed it #classes12.jar, right? There are better drivers that come with Oracle 9i #(v9.2.0.1), the file is called ojdbc14.jar, and it's #backwards-compatible for Oracle 8i. You should try these. Absolutely, renamed that. Yeah we are in the process to see all the areas of improvement. Thanks for the suggestion, I have taken a note. #Then fix the memory leaks. Not an easy fix, there are many java classes and this will take a lot of time. We want to keep this thing as a long term plan under application improvement heading. #The JVM will use as much memory as you let it. Monotonic increase is to #be expected when you look at it via the top command. What you're more #interested in is the %free of the heap. See how well your apps run if #you reduce max memory from 1GB to say 256MB. No, this will have negative impact on the application because in the past its was observed under such conditions of low memory, the GC activity stops (increased pause time) the application and there is no other way but to kill the tomcat. I don't think this is a viable option and its risky too. I don't know the impact. Clients would kill us if something goes wrong. This is one of the biggest challenges I am facing in this project. #Attachments didn't come through, and a GC log wouldn't be very #meaningful to us anyways. I am sorry but the point I was making here was during the course of day, the heap size keeps on increasing but don't know if this is due to memory leak or JVM getting vey greedy these days. Eats up all it gets ;-) Two more problems: 1 - We are serving some downloads from the site too. There are 2 types of downloads - Authorised and Non-authorised. Authorised content have to be downloaded from tomcat and non-auth from apache through a rewrite rule. Problem is that there is high thread count when there is authorised content is downloaded. These downloads are of the size of 1-5 MB. Has these issues been solved in tomcat 4.0 or higher? I will check it otherwise. (Hell lot of things to do!!!) 2 - 12 tomcat having only one shared code base which is mounted on an NFS (this is too much, one might say). I just want to know if all the error logs (Error logger thread exact) are also written to the same NFS part this will call for high I/O contention (right???) because the writting is synczd. Secondly, what are the affects what so ever when the classes are loaded during runtime? (again I/O) As and when I have more things revealed or remember will through in here...I forget as I write...memory leak else where too... I am really impressed that you have given me some response...and expect more...haven't heard much from anybody else from the group. Last but not least needed to know, if we can have some support contract from apache group to support our application. Is that possible? Thanks for the patience. (It takes time to compose this mail...I need patience too) ~Arnab This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]