The reason they have to run so long is that I have a lot of data to *parse* and 
only need to keep a very small percentage. In this particular case I had a 
*fact leak* :) It did make me concerned though if I could prevent this from 
happening by offering reduced functionality or by splitting up calculations in 
more steps... Unfortunately I am competing for memory on this system and can 
not even run 2 jess instances in parallel.

tx
J




________________________________
From: James Owen <[email protected]>
To: [email protected]
Sent: Tuesday, September 15, 2009 5:38:19 PM
Subject: Re: JESS: Exception in thread "main" java.lang.OutOfMemoryError: Java 
heap space

Just one more thought - if your rules are taking 30 MINUTES rather than 30 
seconds then it sounds like you have some kind of loop going on that is 
building (adding to) memory over and over and over.  The Miss Manners benchmark 
does this intentionally to "stress" the rule engine and, in particular, the 
Agenda matching table, to see if the engine can handle overloads such as this.

Check to see which rule is firing the most and you will probably find your 
problem child somewhere in that general area.


SDG
James Owen
Founder October Rules Fest
Senior Consultant / Architect KBSC
http://www.kbsc.com
http://www.OctoberRulesFest.org
Twitter: OctRulesFest
Blogs:
http://JavaRules.blogspot.com [Rulebased Systems Blog]
http://ORF2009.blogspot.com [October Rules Fest Blog]
http://exscg.blogspot.com/ [Expert Systems Consulting Group Blog]

"If I have seen a little further it is by standing on the shoulders of giants."
Sir Isaac Newton in a letter to Robert Hooke, 5 Feb 1676

Come to October Rules Fest and stand on the shoulders of the Giants of the 
industry; if only for a week.



On Sep 14, 2009, at 8:42 AM, jo wrote:

Hi
>
>I got following error, which surprises me as I try to keep the amount of facts 
>to a minimum.
>
>Can I detect this condition *before* it is about to happen ? Any ideas on how 
>to prevent this ?
>
>30m is really not that long :(
>
>Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
>       at jess.factory.FactoryImpl.newToken(FactoryImpl.java:27)
>       at jess.Node2.tokenMatchesLeft(Node2.java:326)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
>       at jess.Node2.runTestsVaryRight(Node2.java:292)
>       at jess.Node2.callNodeLeft(Node2.java:156)
>       at jess.NodeJoin.passAlong(NodeJoin.java:99)
>       at jess.Node2.tokenMatchesLeft(Node2.java:328)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
>       at jess.Node2.runTestsVaryRight(Node2.java:292)
>       at jess.Node2.callNodeLeft(Node2.java:156)
>       at jess.NodeJoin.passAlong(NodeJoin.java:99)
>       at jess.Node2.tokenMatchesLeft(Node2.java:328)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:314)
>       at jess.Node2.doRunTestsVaryRight(Node2.java:299)
>       at jess.Node2.runTestsVaryRight(Node2.java:292)
>       at jess.Node2.callNodeLeft(Node2.java:156)
>       at jess.Node1RTL.passAlong(Node1RTL.java:46)
>       at jess.Node1RTL.callNodeRight(Node1RTL.java:28)
>       at jess.Node1.passAlong(Node1.java:49)
>       at jess.Node1MTELN.callNodeRight(Node1MTELN.java:35)
>       at jess.Node1.passAlong(Node1.java:49)
>       at jess.Node1TECT.callNodeRight(Node1TECT.java:40)
>       at jess.NodeRoot.passAlong(NodeRoot.java:39)
>       at jess.NodeRoot.callNodeRight(NodeRoot.java:14)
>       at jess.FactList.processToken(FactList.java:31)
>       at jess.FactList._assert(FactList.java:210)
>       at jess.FactList.assertFact(FactList.java:181)
>       at jess.Rete.assertFact(Rete.java:548)
>       at jess.FactFunctions$Assert.call(FactFunctions.java:50)
>       at jess.FunctionHolder.call(FunctionHolder.java:35)
>
>real    30m12.867s
>user    27m48.316s
>
>
>
>
>tx
>J
>
>
>
>
>
>--------------------------------------------------------------------
>To unsubscribe, send the words 'unsubscribe jess-users [email protected]'
>in the BODY of a message to [email protected], NOT to the list
>(use your own address!) List problems? Notify [email protected].
>--------------------------------------------------------------------
>
>



Reply via email to