Hi,
The following is the block of code that i tried
RuleBase ruleBase = readRule();
WorkingMemory workingMemory =
ruleBase.newStatefulSession(false); // to keep reference
// Create a message object
workingMemory.insert( message );
workingMemory.fireAllRules();
When i try chaning the "drl" file at run time the change doesnt get
reflected. Is there anything else i need to be doing here? Any additional
jar files ?
To have this change take effect at runtime - do i need to create a new
session for each run or do i need to retain the session - i tried both
"newStatefulSession(false)" and "newStatefulSession()" - get the same
result
with both.
Mark Proctor wrote:
Yes this can be done at runtime. The RuleBase has a reference to each of
the created StatefulSessions that has not called dispose() yet and will
push those rule changes out to each running session.
Mark
pns77 wrote:
> Thanks for the response.
>
> Just to confirm when you say "...but you can remove a rule and add
> another
> in its place..." - can this be done at runtime - i.e server is running, i
> go
> add a new rule/change the output of an existing rule. If so, can i have
> the
> new rule take effect ?
>
> Also, do i need to include any specific jar file for this dynamic feature
> ?
>
> Am not looking at performance here - more from a
> maintenance/changeability
> point of view.
>
>
> Mark Proctor wrote:
>
>> you cannot change an individual rule, but you can remove a rule and add
>> another in its place.
>>
>> Mark
>> pns77 wrote:
>>
>>> Have been able to execute/run a sample Drools file
>>>
>>> import com.sample.Message;
>>>
>>> rule "Hello World"
>>> when
>>> m : Message( status == Message.HELLO, message : message,
>>> testStringExternal : testStringExternal )
>>> then
>>> System.out.println( message );
>>> m.setMessage( "Goodbye cruel world" );
>>> System.out.println( testStringExternal + "Message.HELLO"
);
>>> m.setStatus( Message.GOODBYE );
>>> update( m );
>>> end
>>>
>>> Now, is it possible to change the logic dynamically at runtime ? Or is
>>> the
>>> drl file used only to externalize the business logic? I tried changing
>>> the
>>> message in drl file and it didnt get reflected
>>>
>>> Environment - RAD 6.0/jdk 1.4
>>>
>>> Used the following set of jar files
>>> C:\Drools\libraries\drools-core.jar;
>>> C:\Drools\libraries\drools-compiler.jar;
>>> C:\Drools\libraries\mvel14.jar;
>>> C:\Drools\libraries\antlr-runtime.jar;
>>> C:\Drools\libraries\xstream.jar;
>>> C:\Drools\lib\core-3.2.3.v_686_R32x.jar;
>>>
>>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>>
>
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
View this message in context:
http://www.nabble.com/Drools---is-dynamic-change-possible---tf4277622.htm...
Sent from the drools - user mailing list archive at
Nabble.com.