Hi Mark, Any news on this one? I know its just a puzzle, but I would have hoped drools would cope with it. I was hoping to use the golfer example as a training aid to people in work.
Regards Simon On 09/08/07, Simon French <[EMAIL PROTECTED]> wrote: > > Hi Mark, > I gave the latest version a go but still having the same problem. > It appears Drools doesn't like it when the last name is asserted into > working memory. > The memory usage at this stage is just under 900meg. > After that drools gradually eats up all the available memory but no more > assertions are made. > > Regards > > Simon > > > On 03/08/07, Mark Proctor <[EMAIL PROTECTED]> wrote: > > > > I must admit I didn't check against this example. But we did find a > > memory leak. Each activation remembers its parent activation, this chain was > > never getting nulled, which meant for recursive algorithms it went out of > > memory very quickly - this is now fixed. Maybe you can check trunk and make > > sure that fixes our problem? Trunk is broken at the moment, while we do MVEL > > updates, but should be fixed in a few hours. I'll message the list when it > > is - you won't need to build anything yourself as you will then be able to > > get the latest snapshot to try from here > > http://cruisecontrol.jboss.com/cc/artifacts/jboss-rules. > > > > Mark > > Simon French wrote: > > > > Hi Mark, > > After all the hard work you guys have put into drools recently I hope > > you had a good holiday. > > Has anybody had a chance to look at this? > > > > Simon > > > > On 20/07/07, Mark Proctor <[EMAIL PROTECTED]> wrote: > > > > > > we'll look into this to see where the memory is going. but won't be > > > for another week or so - I'm currently on holiday. > > > > > > Mark > > > Simon French wrote: > > > > > > Hi, > > > After attending a session with Mark Proctor in London I was inspired > > > to play around with Drools in a slightly different way than we use it for > > > in > > > the workplace, and try and solve a puzzle. > > > Unfortunately I couldn't get Drools to solve it as I kept getting > > > memory problems (I believe are cartesian joins being the problem), > > > so I decided to extend the golfer example to see if I got the same > > > problem > > > I added two new names and a new integer property, club > > > > > > // create all possible Golfer objects > > > String[] names = new String[] { "Fred", "Joe", "Bob", > > > "Tom", "Des", "Terry" }; > > > String[] colors = new String[] { "red", "blue", > > > "plaid", "orange","black", "white" }; > > > int[] positions = new int[] { 1, 2, 3, 4, 5, 6 }; > > > int[] clubs = new int[] {9,8,7,4,5,5}; > > > > > > for ( int n = 0; n < names.length; n++ ) { > > > for ( int c = 0; c < colors.length; c++ ) { > > > for ( int p = 0; p < positions.length; p++ ) > > > { > > > for ( int q = 0; q < clubs.length; q++ ) > > > { > > > session.insert(new Golfer( names[n], > > > colors[c], positions[p], clubs[q]) ); > > > > > > .... > > > > > > > > > Then changed the golder.drl to: > > > > > > package com.sample > > > > > > import com.sample.Golfer; > > > > > > > > > rule "Golfer Riddle" > > > when > > > // A golfer named Fred, > > > > > > Golfer( name == "Fred", > > > $fredsPosition : position, $fredsColor : color, > > > $fredsClub : club ) > > > > > > // Der Golfer hinter Fred trägt blau > > > Golfer( $unknownsName : name != "Fred", > > > $unknownsPosition : position == ( $fredsPosition + 1 > > > ), > > > $unknownsColor : color == "blue", color != > > > $fredsColor, > > > $unknownsClub : club == 5 ) > > > > > > // Joe steht an zweiter Stelle > > > Golfer( name == "Joe", $joesPosition : position == 2, > > > position != $fredsPosition, > > > $joesColor : color != $fredsColor, > > > $joesClub : club == 5 ) > > > > > > // Bob traegt Karo > > > Golfer( name == "Bob", > > > name != $unknownsName, > > > $bobsPosition : position != $fredsPosition, > > > position != $unknownsPosition, position != > > > $joesPosition, > > > $bobsColor : color == "plaid", > > > color != $fredsColor, color != $joesColor, > > > color != $unknownsColor, > > > $bobsClub : club < $joesClub ) > > > > > > // Tom ist nicht 1. oder 4., traegt kein Orange > > > Golfer( $tomsName : name == "Tom", > > > $tomsPosition : position != 1, position != 4, > > > position != $fredsPosition, position != $joesPosition, > > > > > > position != > > > $bobsPosition, > > > $tomsColor : color != "orange", color != "blue", > > > color != $fredsColor, color != $joesColor, > > > color != $bobsColor ) > > > > > > Golfer ( $des : name == "Des", $desPosition : position < > > > $fredsPosition, $desColor : color != "blue", > > > color != $fredsColor, color != $joesColor, > > > color != $bobsColor ) > > > Golfer ( $terry : name == "Terry", $terryPosition : position < > > > $desPosition, $terryColor : color != "blue", > > > color != $fredsColor, color != $joesColor, > > > color != $bobsColor ) > > > then > > > System.out.println( "Fred " + $fredsPosition + " " + > > > $fredsColor ); > > > System.out.println( "Joe " + $joesPosition + " " + $joesColor > > > ); > > > System.out.println( "Bob " + $bobsPosition + " " + $bobsColor > > > ); > > > System.out.println( "Tom " + $tomsPosition + " " + $tomsColor > > > ); > > > System.out.println ( "Des " + $desPosition + " " + $desColor > > > ); > > > System.out.println( "terry " + $terryPosition + " " + > > > $terryColor ); > > > end > > > > > > > > > After a couple of minutes of processing I got:- > > > > > > Exception in thread "main" java.lang.OutOfMemoryError: Java heap space > > > > > > I also changed java memory allocation with -Xms1640M -Xmx1640M (The > > > most I can allocate on my PC), and tried running it as a stateless > > > session > > > too. > > > > > > Is there anything else I can do, or is this simply pushing drools too > > > far (surely not!!) ? > > > > > > I'm very keen on pushing this technology as much as possible in our > > > workplace and I'd really appreciate any help. > > > > > > Thanks in advance > > > > > > Simon > > > > > > ------------------------------ > > > > > > _______________________________________________ > > > rules-users mailing list > > > [email protected] > > > > > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > > > > > > > _______________________________________________ > > > rules-users mailing list > > > [email protected] > > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > > > ------------------------------ > > > > _______________________________________________ > > rules-users mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > > > _______________________________________________ > > rules-users mailing list > > [email protected] > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > >
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
