<br><font size=2 face="sans-serif">Unfortunately, we're using the 3.0 version,
so I don't think we can use the repository. &nbsp;That may be necessary
with a future version, when we allow users to make their own rules. &nbsp;Right
now, we can be sure that the only rules changes are coming from developers.</font>
<br>
<br><font size=2 face="sans-serif">Our challenge is that the way we push
out a change to the rules is with a central process which does not have
access to the working memory (nor should it), it merely compiles the rules
and places them in a central location (a database table). &nbsp;The rules
are actually being executed by a series of drones. &nbsp;Those drones pull
the serialized copy of the rules from the common area before they execute.
&nbsp;Since we currently do not allow users to make their own rules, we
can safely assume that no changes are introduced that might invalidate
the working memories. &nbsp; So, we haven't tried that, but I'm not sure
that we would be able to. </font>
<br>
<br><font size=2 face="sans-serif">Would it be safer to use the getGlobals()
and getObjects() methods to serialize that data, instead of serializing
the workingMemory itself? &nbsp;(and then when we start back up, deserialize
the rules, create a new working memory, and setGlobal() and assertObject()
all of our serialized data).</font>
<br>
<br><font size=2 face="sans-serif">... or am I missing something even simpler?</font>
<br>
<br><font size=2 face="sans-serif">Thanks once again for your very speedy
response!</font>
<br>
<br>
<br>
<br><tt><font size=2><br>
 &nbsp; Daniel,<br>
<br>
 &nbsp; I think what you are trying to achieve requires some careful planning.
If<br>
you use the repository, you have a versioned rule base that make sure you<br>
don't lose your working memory.<br>
 &nbsp; Although, without the repo, only thing I can think of is you making
sure<br>
your application always loads the wm into memory, perform the rules<br>
replacement (adding/removing rules), so the working memory gets properly<br>
updated, and then serializes your wm back to the database.... did you tried<br>
that?<br>
<br>
 &nbsp; []s<br>
 &nbsp; Edson<br>
<br>
<br>
2007/6/14, Daniel E Chapman &lt;dechapma@us.ibm.com&gt;:<br>
&gt;<br>
&gt;<br>
&gt; Hello!<br>
&gt;<br>
&gt; We found a problem with the interaction of a serialized working memory
and<br>
&gt; updates to the rules.<br>
&gt;<br>
&gt; Our process involves serializing the working memory to a database.
&nbsp;Later,<br>
&gt; when we load the serialized version of the working memory back from
the<br>
&gt; database, if we've updated the rules it will detect that fact and
it will<br>
&gt; throw away our carefully preserved working memory. &nbsp;We suspect
this is<br>
&gt; because the working memory maintains a reference to the rules as they
were<br>
&gt; when the working memory is originally serialized.<br>
&gt;<br>
&gt; I'm wondering if there is some way to accomplish what we're trying
to do,<br>
&gt; either a way to serialize the working memory with no reference to
the rules<br>
&gt; or some way to have the working memory update to accomodate any changes
to<br>
&gt; the rules that may have occurred since it was serialized.<br>
&gt;<br>
&gt; I know that some other rules engines, such as FairIsaac's Blaze engine,<br>
&gt; have complex schemes where you can have versioned rules in a repository
and<br>
&gt; update the rules in that fashion. &nbsp;I'm not sure that we're trying
to do<br>
&gt; anything quite so complex, just a way to occasionally push out a new
version<br>
&gt; of our rules without having to lose all of the work we've done to
the<br>
&gt; working memory in the past.<br>
&gt;<br>
&gt; (There may come a time where we may intend for the working memories
to be<br>
&gt; cleared out, but I think we can do that in a manual fashion when the
time<br>
&gt; comes.)<br>
&gt;<br>
&gt; Thanks for your time, hopefully there's an easy answer!<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; rules-users@lists.jboss.org<br>
&gt; https://lists.jboss.org/mailman/listinfo/rules-users<br>
&gt;<br>
&gt;<br>
<br>
<br>
-- <br>
 &nbsp;Edson Tirelli<br>
 &nbsp;Software Engineer - JBoss Rules Core Developer<br>
 &nbsp;Office: +55 11 3529-6000<br>
 &nbsp;Mobile: +55 11 9287-5646<br>
 &nbsp;JBoss, a division of Red Hat @ www.jboss.com<br>
</font></tt>
<br>