Guys,

I have been experiencing an interesting problem lately with our production
servers.

We are running Tomcat 5.5.9 with 1.4.2_08 on Gentoo box. We have around 15
contexts (identical web application for 15 separate clients) inside weapps.
Our application is very XML/XSLT oriented. Our main third party hibernate,
axis, batik, struts, velocity and bunch of apache commons stuff. I have
identified the ones that can go in the shared/lib and put the rest in
WEB-INF/lib. I have attached two text files that list these two directory
listings.

Problem is every now and then we will see an OutOfMemoryError on the box
that looks similar to this:

java.lang.OutOfMemoryError
        java.util.zip.ZipFile.open(Native Method)
        java.util.zip.ZipFile.<init>(ZipFile.java:112)
        java.util.jar.JarFile.<init>(JarFile.java:127)
        java.util.jar.JarFile.<init>(JarFile.java:92)
        
org.apache.catalina.loader.WebappClassLoader.openJARs(WebappClassLoader.java
:1544)
        
org.apache.catalina.loader.WebappClassLoader.findResourceInternal(WebappClas
sLoader.java:1763)
        
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLo
ader.java:1570)
        
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.jav
a:850)
        
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1299)
        
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1181)
        java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
        
com.mchange.v2.c3p0.impl.NewPooledConnection.handleThrowable(NewPooledConnec
tion.java:256)
        
com.mchange.v2.c3p0.impl.NewProxyStatement.executeQuery(NewProxyStatement.ja
va:52)
        
com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(Defau
ltConnectionTester.java:136)
        
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.testPooledConnection(C3P
0PooledConnectionPool.java:156)
        
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1.refurbishResourceOnCheck
out(C3P0PooledConnectionPool.java:125)
        
com.mchange.v2.resourcepool.BasicResourcePool.attemptRefurbishResourceOnChec
kout(BasicResourcePool.java:1065)
        
com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResource
Pool.java:238)
        
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C
3P0PooledConnectionPool.java:232)
        
com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(PoolBackedDataSource.
java:94)
        
net.sf.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0Connect
ionProvider.java:33)
        
net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:292)
        net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3373)
        net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3333)
        
net.sf.hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:67)
        
net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:784)
        net.sf.hibernate.loader.Loader.doQuery(Loader.java:269)
        
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader
.java:138)
        net.sf.hibernate.loader.Loader.doList(Loader.java:1063)
        net.sf.hibernate.loader.Loader.list(Loader.java:1054)
        net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854)
        net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1554)
        net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1531)
        net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1527)
        ...
        ...

This to me indicates Tomcat is running out of memory when it tries to load
classes from a Jar. Has anybody seen this before? If anybody has, can you
please elaborate on it. Does it mean I I one too many jars. Bear in mind
that the libs in WEB-INF/lib directory will be loaded 15 times for 15
contexts. Is that where the problem could be coming from? Also, at this
point I thought I will tell you guys about my JVM parameters:

export JAVA_OPTS="-server -Xms512m -Xmx1000m -Xss256k"
export CATALINA_OPTS="-XX:MaxPermSize=300m -XX:+UseDefaultStackSize
-Djava.awt.headless=true"

I would be ever so greatful if anybody could shed any light or share their
experiences with me.

Kind regards...
Arup Vidyerthy
total 4240
-rw-r--r--  1 root root  478024 Jun 13 20:49 c3p0-0.9.0-pre4.jar
-rw-r--r--  1 root root 1848328 Jun 13 20:49 castor-0.9.7.jar
-rw-r--r--  1 root root   31605 Jun 13 20:49 commons-logging-1.0.3.jar
-rw-r--r--  1 root root   53232 Jun 13 20:49 ehcache-0.9.jar
-rw-r--r--  1 root root  967576 Jun 13 20:49 hibernate2.jar
-rw-r--r--  1 root root    8812 Jun 13 20:49 jta.jar
-rw-r--r--  1 root root  352668 Jun 13 20:49 log4j-1.2.8.jar
-rw-r--r--  1 root root   13091 Jun 13 20:49 odmg-3.0.jar
-rw-r--r--  1 root root  361173 Jun 13 20:49 velocity-1.4.jar
-rw-r--r--  1 root root   89043 Jun 13 20:49 velocity-tools-1.1.jar
-rw-r--r--  1 root root   14242 Jun 13 20:49 velocity-tools-generic-1.1.jar
-rw-r--r--  1 root root   64462 Jun 13 20:49 velocity-tools-view-1.1.jar
14_os_jpedal.jar
activation.jar
axis.jar
batik-awt-util.jar
batik-bridge.jar
batik-css.jar
batik-dom.jar
batik-ext.jar
batik-gvt.jar
batik-parser.jar
batik-script.jar
batik-svg-dom.jar
batik-transcoder.jar
batik-util.jar
batik-xml.jar
cglib-full-2.0.2.jar
commons-beanutils.jar
commons-collections-3.1.jar
commons-dbcp-1.2.1.jar
commons-digester.jar
commons-discovery.jar
commons-fileupload-1.0.jar
commons-lang-1.0.1.jar
commons-validator-1.1.3.jar
dom4j-1.6.jar
jaxrpc.jar
jtds-1.0.3.jar
limehouseserverutils.jar
limehousexep.jar
mail.jar
ojdbc14.jar
oscore-2.2.1.jar
saaj.jar
saxon8.jar
struts-el.jar
struts.jar
velocity-dep-1.4.jar
wsdl4j.jar
xalan-2.4.0.jar
xep.jar
xerces_2_5_0.jar
xml-apis.jar
xt.jar

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to