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]
.
--------------------------------------------------------------------