I have noticed a memory leak in my JBoss Minerva pool and am wondering if there is a known fix or work around. I have checked the manual, the forum, and the newsgroups with little luck. Let me give you the specifics:
I am running on Solaris8 on x86, JBoss-2.4.1 and Tomcat-3.2.3. I have a pool with the following configuration in my jboss.jcml <mbean code="org.jboss.resource.ConnectionFactoryLoader" name="JCA:service=ConnectionFactoryLoader,name=minerva_jdbc_matrix"> <attribute name="FactoryName">minerva_jdbc_matrix</attribute> <attribute name="RARDeployerName">JCA:service=RARDeployer</attribute> <attribute name="ResourceAdapterName"> Minerva JDBC LocalTransaction ResourceAdapter </attribute> <attribute name="Properties"> ConnectionURL=jdbc:HypersonicSQL:hsql://localhost:9019 </attribute> <attribute name="ConnectionManagerFactoryName"> MinervaSharedLocalCMFactory </attribute> <attribute name="ConnectionManagerProperties"> # Pool type - uncomment to force, otherwise it is the default #PoolConfiguration=per-factory # Connection pooling properties - see # org.jboss.pool.PoolParameters MinSize=0 MaxSize=50 Blocking=true GCEnabled=true IdleTimeoutEnabled=true InvalidateOnError=true TrackLastUsed=false GCIntervalMillis=120000 GCMinIdleMillis=120000 IdleTimeoutMillis=120000 MaxIdleTimeoutPercent=1.0 </attribute> <attribute name="PrincipalMappingClass"> org.jboss.resource.security.ManyToOnePrincipalMapping </attribute> <attribute name="PrincipalMappingProperties"> userName=sa password= TransactionIsolation=TRANSACTION_READ_COMMITED </attribute> </mbean> I have a stateless session bean which contains the code snippet: try { InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup("java:/minerva_jdbc_matrix"); Connection con = ds.getConnection(); con.close(); } catch (Exception e) { } I didn't include the con.close() in a finally, since the only way a connection could be opened is by ds.getConnection() working, which means that it would always get to con.close() if a connection had opened. I hit this bean with a client that runs 250 concurrent request. I notice that in about 5-8 hrs, the memory of the Java process crawls from about 70M to 120M at which point it will starts to throw OutOfMemory errors and I can never get a connection the database again. If I turn off the client, and let the box's CPU get down to about 99% idle, the memory never clears up. I am forced to restart my server. I have tried this with two different databases and jdbc drivers (hsql and ms sql) and have gotten similar results, so I don't think it is a bug in the drivers. Am I using the pools incorrectly? Is that a pool configuration parameter that I should try? Thanks in advance for any help or clues, Lucas McGregor, NovaLogic _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user