<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18904">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2 face=Arial>If you want to have concurrency (meaning the 
process will continue with other parts of the flow while it is waiting for some 
other node to continue), you will need to model this task you are waiting for as 
some external bit of work (using a work item node or a human task node if you're 
waiting for a human user) and use asynchronous execution of your 
work.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>This means that the work item handler should not be 
executing synchronously (as that will make the engine wait for it) but rather 
start execution (in a separate thread or by invoking a service asynchronously) 
and return.&nbsp; Whenever the task is then completed, the engine should be 
notified again (same as before, using 
manager.completeWorkItem(..)).</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Internally, the engine will not use multi-threading 
as execution is (near) instantaneous.&nbsp; Everything that cannot be executed 
immediately should be modeled using special nodes like work item node, wait 
state, sub process node, etc.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT size=2 face=Arial>Kris</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="BORDER-LEFT: #000000 2px solid; PADDING-LEFT: 5px; PADDING-RIGHT: 0px; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="FONT: 10pt arial; BACKGROUND: #e4e4e4; font-color: black"><B>From:</B> 
  <A title=pmbtgun@gmail.com href="mailto:pmbtgun@gmail.com">Pedro Maria 
  Buitrago Mantilla</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=rules-users@lists.jboss.org 
  href="mailto:rules-users@lists.jboss.org">Rules Users List</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A 
  title=rules-users-request@lists.jboss.org 
  href="mailto:rules-users-request@lists.jboss.org">rules-users-request@lists.jboss.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Friday, April 09, 2010 9:59 
PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [rules-users] RulesFlow - 
  DroolsFlow - Parallelism - SplitNodes - Help</DIV>
  <DIV><BR></DIV>
  <DIV><BR></DIV>
  <DIV>Thanks for you answer,&nbsp;</DIV>
  <DIV><FONT size=2 face=Arial></FONT><BR></DIV>
  <DIV>I thought the performance model took the two branches and processed in 
  parallel in java. Now, given that it is not, I would like to know that I can 
  do in java to execute in parallel my two subflows.</DIV>
  <DIV><BR></DIV>
  <DIV>The launcher is:&nbsp;</DIV>
  <DIV><BR></DIV>
  <DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>package 
  com.epmbog.esb.drools.mediator;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  java.util.HashMap;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  java.util.Map;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.KnowledgeBase;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.KnowledgeBaseConfiguration;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.KnowledgeBaseFactory;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.builder.KnowledgeBuilder;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.builder.KnowledgeBuilderFactory;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.builder.ResourceType;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.conf.MultithreadEvaluationOption;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.io.ResourceFactory;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  org.drools.runtime.StatefulKnowledgeSession;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  com.epmbog.drools.utils.Constantes;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>import 
  com.epmbog.esb.drools.workitems.EJBGenericWorkItemHandler;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>public class 
  TestProcess {</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>public static final void 
  main(String[] args) {</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>try {</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;KnowledgeBase knowledgeBase = 
  readRule();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;StatefulKnowledgeSession ksession = 
  knowledgeBase.newStatefulKnowledgeSession();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;ksession.getWorkItemManager().registerWorkItemHandler("TelnetConnection", 
  new EJBGenericWorkItemHandler());</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;ksession.getWorkItemManager().registerWorkItemHandler( 
  "TelnetDisonnection", new EJBGenericWorkItemHandler());</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;ksession.getWorkItemManager().registerWorkItemHandler( 
  "TelnetSendCommands", new EJBGenericWorkItemHandler());</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;HashMap&lt;String, Object&gt; paramMap = new 
  HashMap&lt;String, Object&gt;();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.SOFT_SWITCH_IP , 
  "10.134.2.2");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.SOFT_SWITCH_USER , 
  null);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.SOFT_SWITCH_PASS , 
  null);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.SOFT_SWITCH_PORT , 
  "6000");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.UMG_IP , 
  "10.134.2.11");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.UMG_USER , 
  "gestor");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.UMG_PASS , 
  "gestor");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.UMG_PORT , 
  "23");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Map&lt;String, Object&gt; parameters = new 
  HashMap&lt;String, Object&gt;();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Map&lt;String, Object&gt; results = new 
  HashMap&lt;String, Object&gt;();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Map&lt;String, Object&gt; 
  mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados = new HashMap&lt;String, 
  Object&gt;();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("softswitch_user", 
  "mediator");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("softswitch_pass", 
  "mediator");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("softswitch_number", 
  "6057000");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("softswitch_circuitInit", 
  "864");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("softswitch_circuitEnd", 
  "895");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("umg_port", 
  "00");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("umg_slot", 
  "03");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("umg_frame", 
  "1");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp;mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados.put("umg_cardType", 
  "CUALQUIERJODA");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;paramMap.put( Constantes.FM_PARAMETERS_MAP , 
  mapaFormadoPorEsbSegunDatosInfraestructuraSolicitados);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>parameters.put("factsMap", 
  paramMap);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>parameters.put("resultsMap", 
  results);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>ksession.startProcess( 
  "com.epmbog.esb.drools.mediator.PriDigitalTest", parameters 
);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" 
  class=Apple-style-span>ksession.fireAllRules();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" 
  class=Apple-style-span>System.out.println("Cualquier cosa");</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;</SPAN></I><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span> </SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;} catch ( Throwable t ) {</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;t.printStackTrace();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;}</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;}</SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>private static KnowledgeBase 
  readRule() throws Exception {</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>KnowledgeBuilder kbuilder = 
  KnowledgeBuilderFactory.newKnowledgeBuilder(); &nbsp; &nbsp; &nbsp; 
  &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span>kbuilder.add( 
  ResourceFactory.newClassPathResource( 
  "/com/epmbog/esb/drools/mediator/PriDigitalTest.rf", TestProcess.class 
  ),</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
  &nbsp; &nbsp; &nbsp;ResourceType.DRF );</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;kbuilder.add( ResourceFactory.newClassPathResource( 
  "/com/epmbog/esb/drools/mediator/SoftSwitchFlow.rf", TestProcess.class 
  ),</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ResourceType.DRF 
  );</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;kbuilder.add( ResourceFactory.newClassPathResource( 
  "/com/epmbog/esb/drools/mediator/UMGFlow.rf", TestProcess.class 
  ),</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ResourceType.DRF 
  );</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;KnowledgeBaseConfiguration configuration = 
  KnowledgeBaseFactory</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;.newKnowledgeBaseConfiguration();</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;configuration.setOption( MultithreadEvaluationOption.YES 
  );</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;KnowledgeBase kbase = 
  KnowledgeBaseFactory.newKnowledgeBase(configuration);</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;kbase.addKnowledgePackages( 
  kbuilder.getKnowledgePackages() );</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span><BR></SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp; &nbsp; &nbsp;return kbase;</SPAN></I></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" class=Apple-style-span>&nbsp;&nbsp; 
  &nbsp;}</SPAN></I></DIV>
  <DIV><SPAN style="WHITE-SPACE: pre" class=Apple-tab-span><I><SPAN 
  style="FONT-SIZE: x-small" class=Apple-style-span></SPAN></I></SPAN></DIV>
  <DIV><I><SPAN style="FONT-SIZE: x-small" 
  class=Apple-style-span>}</SPAN></I></DIV>
  <DIV><BR></DIV>
  <DIV>Thank you,</DIV></DIV>
  <DIV><BR></DIV><BR clear=all>PEDRO MARIA BUITRAGO MANTILLA<BR><BR>Bogotá, 
  Colombia<BR><BR><BR><BR>
  <DIV class=gmail_quote>2010/4/9 Mauricio Salatino <SPAN dir=ltr>&lt;<A 
  href="mailto:salaboy@gmail.com">salaboy@gmail.com</A>&gt;</SPAN><BR>
  <BLOCKQUOTE 
  style="BORDER-LEFT: #ccc 1px solid; MARGIN: 0px 0px 0px 0.8ex; PADDING-LEFT: 1ex" 
  class=gmail_quote>When we define two parallel branches in a business process 
    we represent a real situation where two task needs to be completed in 
    parallel. We are not expressing something low level as Concurrent (multi 
    threaded) programming.<BR><BR>Does this explanation answer your 
    question?<BR><BR>
    <DIV class=gmail_quote>2010/4/9 Pedro Maria Buitrago Mantilla <SPAN 
    dir=ltr>&lt;<A href="mailto:pmbtgun@gmail.com" 
    target=_blank>pmbtgun@gmail.com</A>&gt;</SPAN><BR>
    <BLOCKQUOTE 
    style="BORDER-LEFT: rgb(204,204,204) 1px solid; MARGIN: 0pt 0pt 0pt 0.8ex; PADDING-LEFT: 1ex" 
    class=gmail_quote>
      <DIV>
      <DIV></DIV>
      <DIV class=h5>
      <DIV>Greetings for all,</DIV>
      <DIV><BR></DIV>
      <DIV>We're learning about jboss rules ( drools ), in particular, drools 
      flow by the workflow topic.</DIV>
      <DIV><BR></DIV>
      <DIV>In the documentation, the parallelism is solved by means of split 
      node of type 1 (AND).&nbsp;</DIV>
      <DIV>However, when we execute the testing ,the execution is 
      sequential.</DIV>
      <DIV><BR></DIV>
      <DIV>In particular, the idea is that our workflow executes two subflows in 
      parallel. For this target we configured a&nbsp;</DIV>
      <DIV>"split node" with type 'AND' and a "join node" with type 'AND', no 
      more configuration, Is it required another configurations? &nbsp;</DIV>
      <DIV>Is it problem of standalone applications?&nbsp;We don't know.</DIV>
      <DIV><BR></DIV>
      <DIV><BR></DIV>
      <DIV>This is the case:</DIV>
      <DIV><BR></DIV>
      <DIV>0. Drools:</DIV>
      <DIV><BR></DIV>
      <DIV>
      <DIV>Created-By: Apache Maven</DIV>
      <DIV>Built-By: trikkola</DIV>
      <DIV>Build-Jdk: 1.5.0_15</DIV>
      <DIV>Specification-Title: Drools :: API</DIV>
      <DIV>Specification-Version: 5.0.1</DIV>
      <DIV>Specification-Vendor: JBoss Inc.</DIV>
      <DIV>Implementation-Title: Drools :: API</DIV>
      <DIV>Implementation-Version: 5.0.1</DIV>
      <DIV>Implementation-Vendor-Id: org.drools</DIV>
      <DIV>Implementation-Vendor: JBoss Inc.</DIV></DIV>
      <DIV><BR></DIV>
      <DIV><BR></DIV>
      <DIV>1. ProcessXML:</DIV>
      <DIV><BR></DIV>
      <DIV>
      <DIV><I>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&nbsp;</I></DIV>
      <DIV><I>&lt;process xmlns="<A href="http://drools.org/drools-5.0/process" 
      target=_blank>http://drools.org/drools-5.0/process</A>"</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; xmlns:xs="<A 
      href="http://www.w3.org/2001/XMLSchema-instance" 
      target=_blank>http://www.w3.org/2001/XMLSchema-instance</A>"</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; xs:schemaLocation="<A 
      href="http://drools.org/drools-5.0/process" 
      target=_blank>http://drools.org/drools-5.0/process</A> 
      drools-processes-5.0.xsd"</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; type="RuleFlow" 
      name="PriDigitalTest" id="com.epmbog.esb.drools.mediator.PriDigitalTest" 
      package-name="com.epmbog.esb.drools.mediator" &gt;</I></DIV>
      <DIV><I><BR></I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;header&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;variables&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;variable name="factsMap" 
      &gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;type 
      name="org.drools.process.core.datatype.impl.type.ObjectDataType" 
      className="java.util.HashMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;/variable&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;variable name="resultsMap" 
      &gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&lt;type 
      name="org.drools.process.core.datatype.impl.type.ObjectDataType" 
      className="java.util.HashMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;/variable&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;/variables&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;/header&gt;</I></DIV>
      <DIV><I><BR></I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;nodes&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;start id="1" name="Start" x="126" y="16" 
      width="48" height="48" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;split id="19" name="AND" x="109" y="95" 
      width="80" height="40" type="1" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;subProcess id="17" name="UMGSubFlow" x="16" 
      y="168" width="119" height="49" 
      processId="com.epmbog.esb.drools.mediator.UMGFlow" 
      waitForCompletion="false" independent="false" &gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;mapping type="in" from="resultsMap" 
      to="resultsMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;mapping type="in" from="factsMap" 
      to="factsMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;/subProcess&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;subProcess id="18" name="SoftSwitchSubFlow" 
      x="167" y="168" width="119" height="49" 
      processId="com.epmbog.esb.drools.mediator.SoftSwitchFlow" 
      waitForCompletion="false" independent="false" &gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;mapping type="in" from="resultsMap" 
      to="resultsMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp; &nbsp;&lt;mapping type="in" from="factsMap" 
      to="factsMap" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;/subProcess&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;join id="20" name="Join(And)" x="110" 
      y="251" width="80" height="40" type="1" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;end id="6" name="End" x="112" y="414" 
      width="80" height="40" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;/nodes&gt;</I></DIV>
      <DIV><I><BR></I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;connections&gt;</I></DIV>
      <DIV><I></I>&nbsp;</DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="1" to="19" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="19" to="17" 
/&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="19" to="18" 
/&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp;&nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="17" to="20" 
/&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="18" to="20" 
/&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;&lt;connection from="20" to="6" /&gt;</I></DIV>
      <DIV><I>&nbsp;&nbsp; &nbsp;</I></DIV>
      <DIV><I>&nbsp;&nbsp;&lt;/connections&gt;</I></DIV>
      <DIV><I><BR></I></DIV>
      <DIV><I>&lt;/process&gt;</I></DIV>
      <DIV><I><BR></I></DIV>
      <DIV><I>2.&nbsp;<SPAN style="FONT-STYLE: normal">Chart</SPAN></I></DIV>
      <DIV><I><BR></I></DIV></DIV>
      <DIV><IMG title=PriDigitalTest.JPG alt=PriDigitalTest.JPG 
      src="cid:5878CBB82A3A457DA597CE8075245157@BORG2" width=200 
      height=135><BR></DIV>
      <DIV><FONT size=6 face="arial, sans-serif"><SPAN 
      style="LINE-HEIGHT: 25px; FONT-SIZE: 19px"><BR></SPAN></FONT></DIV>
      <DIV>We greatly appreciate your help, any suggestions? Thank you a 
      lot</DIV><BR clear=all><FONT color=#888888><BR>
      <DIV>PEDRO MARIA BUITRAGO MANTILLA<BR>Bogotá, 
      Colombia<BR><BR></DIV></FONT><BR></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><BR><BR></BLOCKQUOTE></DIV><FONT 
    color=#888888><BR><BR clear=all><BR>-- <BR>- <A 
    href="http://salaboy.wordpress.com" 
    target=_blank>http://salaboy.wordpress.com</A><BR>- <A 
    href="http://www.jbug.com.ar" target=_blank>http://www.jbug.com.ar</A><BR>- 
    Salatino "Salaboy" Mauricio 
    -<BR></FONT><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><BR></BLOCKQUOTE></DIV><BR>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>rules-users mailing 
  list<BR>rules-users@lists.jboss.org<BR>https://lists.jboss.org/mailman/listinfo/rules-users<BR></BLOCKQUOTE><br>
<FONT FACE=3D"Helvetica" SIZE=3D2>Disclaimer: <A HREF="http://www.kuleuven.be/cwis/email_disclaimer.htm">http://www.kuleuven.be/cwis/email_disclaimer.htm</A> for more information.</FONT>
 <BR>

</BODY></HTML>