[rules-users] How to deploy Fusion ?

Wolfgang Laun wolfgang.laun at gmail.com
Fri Aug 26 11:50:06 EDT 2011


I don't see how <drools:batch> in combination with a real time clock is
going to provide you with a scenario where some B can be 10s or more after
an A.

There is no particular knob to turn in order to use Fusion. Basically, it's
Expert, with some features triggered by declaring fact types as events so
that timestamps are applied upon fact insertion.

If your facts are inserted in real time into an ongoing stateful session,
declare with @role(event) and a realtime clock in STREAM mode is adequate.
Otherwise you may have to provide timestamps as bean properties, identify
the field in the declare and then you can use CLOUD mode.

-W



On 26 August 2011 17:08, eskomk <esko.hujanen at ebsolut.fi> wrote:

> Hi all,
>
> I'm new to Drools.
> We need to have Fusion features in our systems, especially temporal
> relations on events.
> The problem is we don't know how to take Fusion in use.
>
> Our rules do not fire, why ?
> What are the steps to get Fusion up and running ?
>
> We are using Drools as a web service, and it is fed with xml-formed facts
> through REST interface.
> Drools itself works ok.
> We use Guvnor as rule editor, and have its snapshot included as CHANGE_SET
> resource in knowledge-services.xml, so that's not a problem.
>
> The rules we are now interested in sits in separate .drl files which are
> read as DRL resources in knowledge-services.xml
> (file contents below, with BBBafterAAA.drl as a resource).
>
> As I have understood, we must change to stateful session from stateless, to
> use Fusion.
> This is so that we can define the event processing mode as STREAM in
> kbase-definition,
> and clock-type as REALTIME in session-definition.
>
> We are primarily using Drools version 5.1.1 on several physical and virtual
> servers
> (we are just learning Drools for now, primaliry gathering data to be used
> in
> Drools).
> Now I am testing Drools version 5.3.0-SNAPSHOT (drools-camel-server),
> where the config file snippet below are taken.
>
> <path> below replaces the actual package names.
>
> We have declared some incoming facts to be events (never mind the Bean
> ending):
> declares_drl.drl
> {file}
> package org.test;
>
> import <path>.AAABean;
> import <path>.BBBBean;
>
>
> declare AAABean
>    @role(event)
> end
>
> declare BBBBean
>    @role(event)
> end
> {/file}
>
> File BBBafterAAA.drl contents, withot THEN part:
> {file}
> package org.test;
>
> import <path>.AAABean;
> import <path>.BBBBean;
>
> /*
> declare AAABean
>    @role(event)
> end
>
> declare BBBBean
>    @role(event)
> end
> */
>
> rule "BBBAfterAAA"
> dialect "mvel"
> no-loop true
> salience 100
>
> when
>    $Aaa : AAABean();
>    $Bbb : BBBBean(this after[10s, 10m] $Aaa);
> then
> // Consequences go here
> {/file}
>
> File knowledge-services.xml contents:
> {file}
> <beans xmlns="http://www.springframework.org/schema/beans"
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>       xmlns:drools="http://drools.org/schema/drools-spring"
>       xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>                           http://drools.org/schema/drools-spring
> http://drools.org/schema/drools-spring-1.3.0.xsd">
>
>  <drools:grid-node id="node1"/>
>
>  <drools:resource-change-scanner id="scanner" interval="2" />
>
>  &lt;bean name=&quot;CCCInitBean&quot; class=&quot;&lt;path&gt;.InitBean">
>        <property name="initOk" value="false"/>
>  </bean>
>
>
>  <drools:kbase id="kbase1" node="node1">
>    <drools:resources>
>            <drools:resource  type="DRL" source="classpath:test.drl"/>
>            <drools:resource  type="DRL"
> source="classpath:declares_drl.drl"/>
>            <drools:resource  type="DRL"
> source="classpath:BBBafterAAA.drl"/>
>            <drools:resource  type="CHANGE_SET"
> source="classpath:ChangeSet.xml"/>
>    </drools:resources>
>
>    <drools:configuration>
>            <drools:event-processing-mode mode="STREAM"/>
>    </drools:configuration>
>  </drools:kbase>
>
>
>  <drools:kagent id="kagent1" kbase="kbase1" new-instance="false">
>        <drools:resources>
>
>                <drools:resource  type="CHANGE_SET"
> source="classpath:ChangeSet.xml"/>
>
>        </drools:resources>
>  </drools:kagent>
>
>
>  <drools:ksession id="ksession1" type="stateful" kbase="kbase1"
> node="node1">
>        <drools:configuration>
>            <drools:clock-type type="REALTIME"/>
>        </drools:configuration>
>                <drools:batch>
>                        <drools:insert-object ref="mirellaInitBean"/>
>                        <drools:fire-all-rules />
>                </drools:batch>
>
>
>  </drools:ksession>
>
>
> </beans>
> {/file}
>
>
> Cheers,
> Esko
> http://www.ebsolut.fi
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/How-to-deploy-Fusion-tp3287119p3287119.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20110826/f0489868/attachment.html 


More information about the rules-users mailing list