[rules-users] BRMS Server - memory Issue while execution - Critical

Mark Proctor mproctor at codehaus.org
Fri Jul 20 12:53:27 EDT 2007


We did find a memory leak for highly recursive sessions, which is fixed 
in trunk, please try the latekst trunk snapshot here:
http://cruisecontrol.jboss.com/cc/artifacts/jboss-rules

Mark
Arjun Dhar wrote:
> Hi,
>  I've been building a BRMS server over the Drools 4MR2 API.
>
> The Server has a Boot process to allow to make it become a Rule server(s). 
> reads and XML configuration in which a user can specify the location of the 
> DRL, XLS, CVS, etc. During the Boot proocess it verifies thew authenticity of 
> each resource it loads. To sommarize:
>
>  <Session 1 type="Stateless">
>     <Rule Source 1>
>     <Rule Source 2>
>     ..
>     <Adapter ExternalService class="..."/>
>  <Session>
>
>  <Session 2 type="Stateful">
>     <Rule Source 1>
>     <Rule Source 2>
>     ..
>  <Session>
> ..well its more, but I guess this paints the picture.
>
>
> It creates a Pool of Sessions. Now I know creating a Session is inexpensive, 
> but the process of creating them and authentication of resources etc. (Required 
> for prodcution quality system)
>
> Once the server is up, requests are serviced. the request knows which session 
> it wants and facts are asserted per request. The request can be Synchronous or 
> Async and single or batch.
>
> For testing I'm using: (JMeter test Case)
> Session mode: STATELESS
> Synchronous
> Mode: Batch of 5 facts (composing of other objects (about 5) which are asserted 
> into the Session as well) at at a time
> Loop: 10,000 <-- Does not matter how fast or slow I trow this at the engine
>
> After the request is processed and results logged; Result and what rules led to 
> that result. I even nullify the top level Business obejcts. (a desperate 
> attempt to free memory)
>
> After about 10,000 loops the System goes out of memory. 
> Sorry to bore you so far, but it was important you have the right context :o)
>
> QUESTION:: Is the session maintaining references to those objects ever after 
> executing them? Why are the objects not being released? 
>
> Specially I'd imagine for a STATELESS session (which is what I've set as 
> default).
>
> Using JMeter this system crashes every time under load, even with a single 
> Thread. Clearly objects are not being released.
>
> The error I get may help you: (Along with out of memory). This exception only 
> comes under Load conditions.
> Admin:ERROR: [com.myserver.brms.demos.certify.web.servlet.CertifyWebRequests]
> [service] :org.drools.spi.ConsequenceException: java.lang.NullPointerException
>
> 	at org.drools.common.DefaultAgenda.fireActivation
> (DefaultAgenda.java:501)
>
> 	at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:461)
>
> 	at org.drools.common.AbstractWorkingMemory.fireAllRules
> (AbstractWorkingMemory.java:373)
>
> 	at org.drools.reteoo.ReteooStatelessSession.execute
> (ReteooStatelessSession.java:72)
>
> 	at com.myserver.brms.sessions.RulesEngineSessionJBossRules4.execute
> (RulesEngineSessionJBossRules4.java:113)
> at 
> com.myserver.brms.services.execute.recore.batch.ExecuteSessionBatch.executeBatch
> (ExecuteSessionBatch.java:160)
>
> Please help me! This is the only downtime issue I face and unfortunatley its 
> the most critical point of failure.
>
> All thats left is to build an RMI service with a console dameon shell to give 
> it the final touches. Once this is done i'd like to share the deisng with you 
> guys if you like it.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>   




More information about the rules-users mailing list