<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">
<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>
                                <td>
                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>
                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px; -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
Re: jBPM5 - Using as a state machine in clustered spring application with a dashboard
</h3>
<span style="margin-bottom: 10px;">
created by <a href="http://community.jboss.org/people/garytse">Gary tse</a> in <i>jBPM</i> - <a href="http://community.jboss.org/message/625664#625664">View the full discussion</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">
<div class="jive-rendered-content"><p>Hi Narayan,</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>My team happens to be doing very similar stuff -- Orchestration of events using JBPM as a state machine.  The only difference is that we are using vanilla web service.  </p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>>>></p><p>Questions:</p><p>a) What is the best way to configure the session, especially when processes instances are not shared?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>For now, we use a single StatefulKnowledgeSession in a "primary" cluster-node to handle all of the processes eventhough we receive webservice calls from multiple web containers.   If scaling is needed, my plan is to move to multiple StatefulKnowledgeSessions located in different cluster nodes;  then have a mapping/ look up method to find where the actual proceses are.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>2. Dashboard support </p><p>Can't comment; we are not using this ... yet.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>3. Event management - I would need to make use of  tasks(workItems)/events and another business layer to keep mapping between event meta-data to processInstance, workItem/eventId etc.. So when an business event occures I would be able to locate process instance then make following call to move it forward - ksession.getWorkItemManager().completeWorkItem(workItemId, parameters)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;"> </p><p>This is one part I find tricky too.  The events are unconditional.  Say, I have 10 instances of the same process type, each tries to receive a unique event to proceed.   Even though I can signal a EventType of 1-10 dynamically, I have no way to find out WHICH of the 10 instances is actually interested in my event.  For now, I just loop through all of the processes and notify each of them.   In the BPMN, I make a "loop" that conditions and loops back to waitfor the event again if the conditions do not match.</p></div>
<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
<p style="margin: 0;">Reply to this message by <a href="http://community.jboss.org/message/625664#625664">going to Community</a></p>
        <p style="margin: 0;">Start a new discussion in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034">Community</a></p>
</div></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>