Re: OutOfMemoryError with Proxy
Armin Waibel <[email protected]>
| Newsgroups | gmane.comp.jakarta.ojb.user |
|---|---|
| Message-ID | <[email protected]> |
Hi, could you post the OJB.properties and jdbc-connection-descriptor too? This would help to find problematic settings. Which version of OJB do you use? mananthakris wrote: > Hi, > We are using OJB with Jboss,Mysql on linux. > We have implemented all we could as suggested by OJB performance tutorial. > We are using Proxies,default cache,PB-api,odmg transaction,but we can't use > getIteratorByQuery because the results are processed after the transaction > is closed. We are facing outofmemory error in two places always. One while > materializing subject from proxy and two using getObjectByQuery for finding > an object by primarykey. Isn't it possible to lookup the object by Identity instead of using a query? http://db.apache.org/ojb/docu/tutorials/pb-tutorial.html#Find+object+by+primary+key > It happens only if a lot of users around 200 are > using the system. How many objects are materialized? regards, Armin > We have two tier systems with jboss running on a linux > machine with 4GB ram and we have also finetuned jvm options that has reduced > frequency of OutOfMemoryError (we use -Xms768M -Xmx768M -XX:NewSize=256M) > Any suggestions are appreciated? Should we be looking at mysql > performance,any good tools for profiling ojb? > Here is the stack trace of two errors > 1)java.lang.OutOfMemoryError > rethrown as > org.apache.ojb.broker.PersistenceBrokerException > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getExtentDBObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getReferencedObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReference(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReferences(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Unknown > Source) > at > org.apache.ojb.broker.accesslayer.IndirectionHandler.getRealSubject(Unknown > Source) > at org.apache.ojb.broker.VirtualProxy.getRealSubject(Unknown Source) > at > com.tk20.bo.BaseServerObjectProxy.realSubject(BaseServerObjectProxy.java:46) > at > com.tk20.bo.BaseServerObjectProxy.getRelatedObjects(BaseServerObjectProxy.java:334) > at com.tk20.ejb.api.query.QueryMgrEJB.getList(QueryMgrEJB.java:83) > > 2)java.lang.OutOfMemoryError > rethrown as > org.apache.ojb.broker.PersistenceBrokerException > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollection(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveCollections(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getExtentDBObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getReferencedObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReference(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReferences(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getExtentDBObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getReferencedObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReference(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReferences(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getExtentDBObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getReferencedObject(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReference(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.retrieveReferences(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getDBObject(Unknown Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByIdentity(Unknown > Source) > at > org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown > Source) > at > org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown > Source) > at > com.tk20.ejb.api.BaseServiceEJB.findByPrimaryKey(BaseServiceEJB.java:189) >