<div dir="ltr">Thank you Mark.<div><br></div><div>I&#39;m planning to marshal the knowledge session at regular intervals. When the server is restarted, it can load the session and reinsert the events occurred during the downtime. </div>
<div><br></div><div>As an alternative to this approach, I&#39;m looking at creating a knowledge session per user. This way we&#39;ll be creating many knowledge sessions, But I believe persisting them will be quick. Are there any side effects to this approach?</div>
<div><br></div><div>--</div><div>Cheers! <br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Mar 4, 2014 at 4:52 AM, Mark Proctor <span dir="ltr">&lt;<a href="mailto:mproctor@codehaus.org" target="_blank">mproctor@codehaus.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Edson will be working on building a clustered HA execution server during the spring and summer period. No details yet, he’s just starting this now.<div>
<br></div><div>We’ll be taking a slightly different approach. Master will run and produce a incremental journal of non-reproducable state changes; such as the state of the agenda. We’ll replicate that journal log, along with user entity state changes to the slaves for replay.</div>
<div class=""><div><br></div><div><blockquote type="cite"><div dir="ltr"><p class="MsoNormal">I’m certain that other nodes can be notified, if one of the nodes go down. So the question is, about the possibility to write/read the session to/from a cache, pick up with session and seamlessly resume the execution. Are there any practical approaches to store the working memory in a cache instead of just the VM memory?</p>
</div></blockquote></div></div><div><div>You can marshal a session to a byte[] and persist that, the down side is serialises the entire session every time. So it can be quite heavy, which is why are trying to work on a incremental journal approach instead.</div>
<div><br></div><div><br></div><div>Mark<br><div><div><div class="h5"><div>On 3 Mar 2014, at 07:46, Chakravarthi Muppalla &lt;<a href="mailto:chakri143@gmail.com" target="_blank">chakri143@gmail.com</a>&gt; wrote:</div><br>
</div></div><blockquote type="cite"><div><div class="h5"><div dir="ltr"><p class="MsoNormal">Hello All,</p><div> <br></div><p class="MsoNormal">We are planning to user drools for our event driven business
rules execution. I’m designing this around the features available in Expert
engine, Fusion, Guvnor.</p><div> <br></div><p class="MsoNormal">An overview of the system will look like this.</p><div> <br></div><p>1.)<span style="font-size:7pt;font-family:&#39;Times New Roman&#39;">    1.) </span>We will have N application nodes with an
embedded drools engine. These nodes will be subscribed to the JMS(mostly
ActiveMQ) and a clustered cache.</p><p>2.)<span style="font-size:7pt;font-family:&#39;Times New Roman&#39;">    2.) </span>All the customer activities will be pushed onto
the JMS. One of these N nodes will get the customer activity event. This node
will update the cache (customer related data cache) with this activity.</p><p>3.)<span style="font-size:7pt;font-family:&#39;Times New Roman&#39;">   3.)  </span>As all the nodes are connected to the cache,
each one of them will get a call back about the cache entry. </p><p>4.)<span style="font-size:7pt;font-family:&#39;Times New Roman&#39;">    4.) </span>If this is the first activity of the customer,
One of the nodes will act as a master to pick up this and insert this into the
stateful session’s working memory. </p><p>5.)<span style="font-size:7pt;font-family:&#39;Times New Roman&#39;">    5.) </span>Any further cache call backs related to this
user will be sent to this node. </p><div> <br></div><p class="MsoNormal">In case one of the nodes go down, I want one of the other
nodes to resume the execution of the affected customers.</p><p class="MsoNormal">To translate this into drools, I want one of the nodes to
pick up the session of the failed node.  As
this is not available out of the box, I’m looking for possible approaches.</p><div> <br></div><p class="MsoNormal">I’m thinking of writing the working memory contents to a
middle tier cache(possibly radis) backed by persistence(mysql). This cache will
write the data to the persistence either at certain intervals or on certain
events.</p><div> <br></div><p class="MsoNormal">I’m certain that other nodes can be notified, if one of the
nodes go down. So the question is, about the possibility to write/read the
session to/from a cache, pick up with session and seamlessly resume the
execution. Are there any practical approaches to store the working memory in a
cache instead of just the VM memory?</p><div><br></div>-- <br>Cheers!<br>
</div></div></div>
_______________________________________________<br>rules-users mailing list<br><a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></blockquote>
</div><br></div></div></div><br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Thanks &amp; Regards,<br>
Chakravarthi.<br>
</div>