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)
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.