(no subject)
by Venkata Ramana Reddy Avula
Hi,
I am implementing rules engine into my project, I have been referring the many technical resources about jboss drools.
I did implement some set of rules which are much more needed for my project.
All of a sudden after I placed all the rules in the spreadsheet(.xls) file, and executed it, it shows me strange exceptions like this below.
It was reading the xls file, creating .drl file, that also we can see, but it is showing the errors.
Can anyone help me please on this, I am very much tried, could not able to resolve.
I need a clue how to do that.
This is my class, where I will have conditional parameters
package com.dfs.dsa.rules;
public class QuarterlyBonusRules {
private Double attendancePercentage = null;
public Double getAttendancePercentage() {
return attendancePercentage;
}
public void setAttendancePercentage(Double attendancePercentage) {
this.attendancePercentage = attendancePercentage;
}
public int getMinorCollisionDays() {
return minorCollisionDays;
}
public void setMinorCollisionDays(int minorCollisionDays) {
this.minorCollisionDays = minorCollisionDays;
}
public int getMajorCollisionDays() {
return majorCollisionDays;
}
public void setMajorCollisionDays(int majorCollisionDays) {
this.majorCollisionDays = majorCollisionDays;
}
private int minorCollisionDays;
private int majorCollisionDays;
private int bonusAmount = 11;
private boolean violationAssessed = false;
public int getBonusAmount() {
return bonusAmount;
}
public void setBonusAmount(int bonusAmount) {
this.bonusAmount = bonusAmount;
}
public boolean isViolationAssessed() {
return violationAssessed;
}
public void setViolationAssessed(boolean violationAssessed) {
this.violationAssessed = violationAssessed;
}
}
Then I do have one test class to execute the rules
package com.dfs.dsa.rules;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.decisiontable.InputType;
import org.drools.decisiontable.SpreadsheetCompiler;
import org.drools.event.rule.DebugAgendaEventListener;
import org.drools.event.rule.DebugWorkingMemoryEventListener;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
/**
* This class will create a drl file from excel sheet and then execute the
* rules.
*/
@SuppressWarnings("restriction")
public class QBResult {
public static final void main(final String[] args) {
// Create knowledge builder
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
// Create drl file from excel sheet
InputStream is = null;
try {
is = new FileInputStream("c:/myeclipse/DroolsProject/src/QuarterlyBonusRules.xls");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Create compiler class instance
SpreadsheetCompiler sc = new SpreadsheetCompiler();
// Compile the excel to generate the (.drl) file
StringBuffer drl = new StringBuffer(sc.compile(is, InputType.XLS));
// Insert dialect value into drl file
drl.insert(drl.indexOf("DROOLS") + 40, "dialect \"mvel\"" + "\n");
// Check the generated drl file
System.out.println("Generate DRL file is showing below–: ");
System.out.println(drl);
// writing string into a drl file
try {
BufferedWriter out = new BufferedWriter(new FileWriter(
"QuarterlyBonusRules.drl"));
out.write(drl.toString());
out.close();
} catch (IOException e) {
System.out.println("Exception ");
}
// Wait before using the drl file in the next section.
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
kbuilder.add(ResourceFactory.newFileResource(new File(
"QuarterlyBonusRules.drl")), ResourceType.DRL);
if (kbuilder.hasErrors()) {
System.out.println("kbuilder has errors");
System.out.println(kbuilder.getErrors().toString());
}
// get the compiled packages (which are serializable)
final Collection pkgs = kbuilder.getKnowledgePackages();
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
final StatefulKnowledgeSession ksession = kbase
.newStatefulKnowledgeSession();
ksession.addEventListener(new DebugAgendaEventListener());
ksession.addEventListener(new DebugWorkingMemoryEventListener());
QuarterlyBonusRules qbr = new QuarterlyBonusRules();
qbr.setAttendancePercentage(new Double(0.75));
qbr.setMinorCollisionDays(0);
qbr.setMajorCollisionDays(0);
qbr.setViolationAssessed(false);
ksession.insert(qbr);
ksession.fireAllRules();
ksession.dispose();
System.out.println(qbr.getBonusAmount());
}
}
AFter executing the above program, here I am getting the error, and not able to rectify it
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Warning: Cannot read name ranges for Excel_BuiltIn__FilterDatabase_1 - setting to empty
Warning: Cell at D21 not present - adding a blank
Generate DRL file is showing below–:
package DROOLS;
//generated from Decision Table
dialect "mvel"
import com.dfs.dsa.rules.QuarterlyBonusRules;
// rule values at B11, header at B6
rule "1"
when
qbr:QuarterlyBonusRules(attendancePercentage>=0.75)
(minorCollisionDays>=0 && minorCollisionDays<=0);
(majorCollisionDays>=0 && majorCollisionDays<=0);
violationAssessed==false;
then
qbr.setBonusAmount(150);
end
// rule values at B12, header at B6
rule "2"
when
qbr:QuarterlyBonusRules(attendancePercentage>=0.56)
(minorCollisionDays>=0 && minorCollisionDays<=90);
(majorCollisionDays>=0 && majorCollisionDays<=90);
violationAssessed==true;
then
qbr.setBonusAmount(0);
end
kbuilder has errors
[9,21]: [ERR 102] Line 9:21 mismatched input '>=' in rule "1"
[20,21]: [ERR 102] Line 20:21 mismatched input '>=' in rule "2"
[0,0]: Parser returned a null Package
==>[ObjectInsertedEventImpl: getFactHandle()=[fact 0:1:2144330803:2144330803:1:DEFAULT:com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433], getObject()=com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433, getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@23efdc4, getPropagationContext()=PropagationContextImpl [activeActivations=0, dormantActivations=0, entryPoint=EntryPoint::DEFAULT, factHandle=[fact 0:1:2144330803:2144330803:1:DEFAULT:com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433], leftTuple=null, originOffset=-1, propagationNumber=4, rule=null, type=0]]
11
Note: the number 11 is the value, it has printed, that I set to the bonus amount, but it should not print that value, it should pring 150.
I am here attaching the spread sheet, where I have added all the rules in it.
I appreciate you a lot for the help
Thanks & Regards,
Venkata.
10 years, 5 months
I am getting errors for Decision Table rules
by avramanaareddy
Hi,
I am implementing rules engine into my project, I have been referring the
many technical resources about jboss drools.
I did implement some set of rules which are much more needed for my project.
All of a sudden after I placed all the rules in the spreadsheet(.xls) file,
and executed it, it shows me strange exceptions like this below.
It was reading the xls file, creating .drl file, that also we can see, but
it is showing the errors.
Can anyone help me please on this, I am very much tried, could not able to
resolve.
I need a clue how to do that.
This is my class, where I will have conditional parameters
package com.dfs.dsa.rules;
public class QuarterlyBonusRules {
private Double attendancePercentage = null;
public Double getAttendancePercentage() {
return attendancePercentage;
}
public void setAttendancePercentage(Double attendancePercentage) {
this.attendancePercentage = attendancePercentage;
}
public int getMinorCollisionDays() {
return minorCollisionDays;
}
public void setMinorCollisionDays(int minorCollisionDays) {
this.minorCollisionDays = minorCollisionDays;
}
public int getMajorCollisionDays() {
return majorCollisionDays;
}
public void setMajorCollisionDays(int majorCollisionDays) {
this.majorCollisionDays = majorCollisionDays;
}
private int minorCollisionDays;
private int majorCollisionDays;
private int bonusAmount = 11;
private boolean violationAssessed = false;
public int getBonusAmount() {
return bonusAmount;
}
public void setBonusAmount(int bonusAmount) {
this.bonusAmount = bonusAmount;
}
public boolean isViolationAssessed() {
return violationAssessed;
}
public void setViolationAssessed(boolean violationAssessed) {
this.violationAssessed = violationAssessed;
}
}
Then I do have one test class to execute the rules
package com.dfs.dsa.rules;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.decisiontable.InputType;
import org.drools.decisiontable.SpreadsheetCompiler;
import org.drools.event.rule.DebugAgendaEventListener;
import org.drools.event.rule.DebugWorkingMemoryEventListener;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;
/**
* This class will create a drl file from excel sheet and then execute the
* rules.
*/
@SuppressWarnings("restriction")
public class QBResult {
public static final void main(final String[] args) {
// Create knowledge builder
final KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
// Create drl file from excel sheet
InputStream is = null;
try {
is = new
FileInputStream("c:/myeclipse/DroolsProject/src/QuarterlyBonusRules.xls");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Create compiler class instance
SpreadsheetCompiler sc = new SpreadsheetCompiler();
// Compile the excel to generate the (.drl) file
StringBuffer drl = new StringBuffer(sc.compile(is, InputType.XLS));
// Insert dialect value into drl file
drl.insert(drl.indexOf("DROOLS") + 40, "dialect \"mvel\"" + "\n");
// Check the generated drl file
System.out.println("Generate DRL file is showing below–: ");
System.out.println(drl);
// writing string into a drl file
try {
BufferedWriter out = new BufferedWriter(new FileWriter(
"QuarterlyBonusRules.drl"));
out.write(drl.toString());
out.close();
} catch (IOException e) {
System.out.println("Exception ");
}
// Wait before using the drl file in the next section.
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
kbuilder.add(ResourceFactory.newFileResource(new File(
"QuarterlyBonusRules.drl")), ResourceType.DRL);
if (kbuilder.hasErrors()) {
System.out.println("kbuilder has errors");
System.out.println(kbuilder.getErrors().toString());
}
// get the compiled packages (which are serializable)
final Collection pkgs = kbuilder.getKnowledgePackages();
final KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages(pkgs);
final StatefulKnowledgeSession ksession = kbase
.newStatefulKnowledgeSession();
ksession.addEventListener(new DebugAgendaEventListener());
ksession.addEventListener(new DebugWorkingMemoryEventListener());
QuarterlyBonusRules qbr = new QuarterlyBonusRules();
qbr.setAttendancePercentage(new Double(0.75));
qbr.setMinorCollisionDays(0);
qbr.setMajorCollisionDays(0);
qbr.setViolationAssessed(false);
ksession.insert(qbr);
ksession.fireAllRules();
ksession.dispose();
System.out.println(qbr.getBonusAmount());
}
}
AFter executing the above program, here I am getting the error, and not able
to rectify it
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.
Warning: Cannot read name ranges for Excel_BuiltIn__FilterDatabase_1 -
setting to empty
Warning: Cell at D21 not present - adding a blank
Generate DRL file is showing below–:
package DROOLS;
//generated from Decision Table
dialect "mvel"
import com.dfs.dsa.rules.QuarterlyBonusRules;
// rule values at B11, header at B6
rule "1"
when
qbr:QuarterlyBonusRules(attendancePercentage>=0.75)
(minorCollisionDays>=0 && minorCollisionDays<=0);
(majorCollisionDays>=0 && majorCollisionDays<=0);
violationAssessed==false;
then
qbr.setBonusAmount(150);
end
// rule values at B12, header at B6
rule "2"
when
qbr:QuarterlyBonusRules(attendancePercentage>=0.56)
(minorCollisionDays>=0 && minorCollisionDays<=90);
(majorCollisionDays>=0 && majorCollisionDays<=90);
violationAssessed==true;
then
qbr.setBonusAmount(0);
end
kbuilder has errors
[9,21]: [ERR 102] Line 9:21 mismatched input '>=' in rule "1"
[20,21]: [ERR 102] Line 20:21 mismatched input '>=' in rule "2"
[0,0]: Parser returned a null Package
==>[ObjectInsertedEventImpl: getFactHandle()=[fact
0:1:2144330803:2144330803:1:DEFAULT:com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433],
getObject()=com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433,
getKnowledgeRuntime()=org.drools.impl.StatefulKnowledgeSessionImpl@23efdc4,
getPropagationContext()=PropagationContextImpl [activeActivations=0,
dormantActivations=0, entryPoint=EntryPoint::DEFAULT, factHandle=[fact
0:1:2144330803:2144330803:1:DEFAULT:com.dfs.dsa.rules.QuarterlyBonusRules@7fcfe433],
leftTuple=null, originOffset=-1, propagationNumber=4, rule=null, type=0]]
11
Note: the number 11 is the value, it has printed, that I set to the bonus
amount, but it should not print that value, it should pring 150.
I am here attaching the spread sheet, where I have added all the rules in
it.
I appreciate you a lot for the help
Thanks & Regards,
Venkata.
<http://drools.46999.n3.nabble.com/file/n4030519/quarterlyBonusRules.jpg>
--
View this message in context: http://drools.46999.n3.nabble.com/I-am-getting-errors-for-Decision-Table-...
Sent from the Drools: User forum mailing list archive at Nabble.com.
10 years, 5 months
packaging 'kjar' with kie-maven-plugin and src/test/resources directory
by Matteo Mortari
Ciao, speaking of the kie maven plugin, can I kindly ask for a feedback
about https://issues.jboss.org/browse/DROOLS-495 , please?
I normally use src/test/resources directory to store test files for some
Unit test. Typically by "test files" I mean xml files, which get
un-marshaled and used for some additional testing of rule behavior. It
seems to me:
- that setting in the pom.xml the <packaging> to 'kjar' does not make
these file resources available during the test phase.
- setting the <packaging> to 'jar' solve the issue, but this exclude the
kie-maven-plugin from the maven phases.
At least this is my experience, as detailed in the Jira with reproducer,
and personally I'm currently using other not-very-beautiful means to
overcome the issue.
Just asking to know, thank you in advance.
(also "not a bug" or "reject" would be acceptable feedback of course)
Ciao,
Matteo
10 years, 5 months
Are globals not permitted with queries?
by Borris
I was experimenting with ways of avoiding having to put literal strings
into my rules (it is very fragile and bugs can be silent for a long
time). I tried declaring a global and then tried supplying it to a
query. This generates a backtrace during the newKieSession. A simple
example to provoke the problem:
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession =
kContainer.newKieSession("ksession-rules");
kSession.setGlobal("AString", "Hello World");
kSession.fireAllRules();
package com.sample
global java.lang.String AString;
declare Thing
name: String @key
end
rule init
when
then
insert( new Thing( AString ) );
end
query test(String $in)
Thing( $in; )
end
rule spot
when
test( "Hello World"; )
Thing( "Hello World"; )
test( AString; )
Thing( AString; )
then
System.out.println("found msg\n");
end
java.lang.NullPointerException
at
org.drools.core.rule.LogicTransformer.processElement(LogicTransformer.java:243)
at
org.drools.core.rule.LogicTransformer.processElement(LogicTransformer.java:263)
at
org.drools.core.rule.LogicTransformer.fixClonedDeclarations(LogicTransformer.java:134)
at
org.drools.core.rule.LogicTransformer.transform(LogicTransformer.java:99)
at
org.drools.core.definitions.rule.impl.RuleImpl.getTransformedLhs(RuleImpl.java:560)
at
org.drools.core.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:105)
at org.drools.core.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:100)
at
org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1455)
at
org.drools.core.impl.KnowledgeBaseImpl.addRule(KnowledgeBaseImpl.java:1435)
at
org.drools.core.impl.KnowledgeBaseImpl.addPackages(KnowledgeBaseImpl.java:838)
at
org.drools.core.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:266)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:412)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:346)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:498)
at
org.drools.compiler.kie.builder.impl.KieContainerImpl.newKieSession(KieContainerImpl.java:469)
at com.sample.DroolsTest.main(DroolsTest.java:17)
The 3rd action in the spot rule causes the null exception during
initialise, if it is present. Comment out just that line and no
exceptions happen and behaviour is as expected.
Are globals permitted in the way I am trying to use them, as a parameter
to a query?
Borris
10 years, 5 months
Doubt regarding split in Drools rule-flow
by bjs
Hello everyone,
I have ruleflow with a split that seggregates objects with balance less
than 5000(branch1) and more than and equal to 5000(branch2) and series of
rules in each of the branch.
But when i run the flow for multiple objects , if an objects with balance
less than 5000(branch1) matches the rule under the branch2 it fires the
rule.
How do i segregate based on the split and make the objects fire rules only
under branch1 if it satisfies the condition for branch1.
--
View this message in context: http://drools.46999.n3.nabble.com/Doubt-regarding-split-in-Drools-rule-fl...
Sent from the Drools: User forum mailing list archive at Nabble.com.
10 years, 5 months
DROOLS-516 - Continued Memory Leak problem Drools 6.1.0.
by Kent Anderson
It appears there is another condition where Drools holds onto memory indefinitely. (See https://issues.jboss.org/browse/DROOLS-516)
Use case: We have a set of rules designed to detect a heartbeat, then report when/if the heartbeat stops.
Problem: In the normal case of a constant heartbeat, memory is retained in the JVM, even though the fact count in working memory is 1.
The following rules produce this problem. I have attached a test project that demonstrates this problem. 600K events are inserted into the stream, then the test driver waits. After 10 seconds, the “absence detected” rule fires. Requesting a GC via JMC has no effect. If you hit a key while the test driver is waiting, a new event will be added, which will cause the “clear absence alarm” rule to fire. At this point some memory is freed automatically. Requesting another GC removes all memory and the JVM is back in its (nearly) new condition.
We consider this a memory leak since the events are gone from working memory and will no longer be considered in any rule evaluations, but they are still active somewhere in the JVM.
package org.drools.example.api.kiemodulemodel
import demo.Event
declare Event
@role( event )
@timestamp( timestamp )
end
declare Heartbeat
@role( event )
@timestamp( event.timestamp )
event : Event
end
declare AbsenceDetected
name : String
end
/*
* This rule matches the first event
*
* NOTE: This stream requires the heartbeat event
* to occur at least once before absence will be detected.
*/
rule "detect first heartbeat"
when
$event : Event()
not ( Heartbeat() )
then
delete($event);
insert(new Heartbeat($event));
System.out.println("[DFH] Got event: " + $event.getEventId());
end
/*
* This rule matches every event and stores only the most recent
* as the heartbeat.
*/
rule "keep latest heartbeat"
when
$heartbeat : Heartbeat()
$event : Event()
then
delete($heartbeat);
insert(new Heartbeat($event));
System.out.println("[KLH] Got event: " + $event.getEventId());
delete($event);
end
/*
* This rule detects when a heartbeat stops for 10s
*/
rule "detect absence"
duration(10s)
when
$heartbeat : Heartbeat()
not ( Event() )
not (AbsenceDetected() )
then
delete($heartbeat);
insert(new AbsenceDetected("Absence"));
System.out.println("[DA] Absence detected");
end
/*
* This rule detects when the heartbeat starts again after
* absence has been detected.
*/
rule "clear absence alarm"
when
$heartbeat : Heartbeat()
$absence : AbsenceDetected ()
then
delete($absence);
System.out.println("[CAA] Heartbeat restored");
end
10 years, 5 months
Problem with Drools 6.0.1 Eclipse Projects with CDI and Java 7
by WebHomer
I'm new to Drools and pretty new to maven. I am trying to incorporate Drools
6.0.1 into a Wildfly (8.0.0) based project. I am using the current version
of JBoss Developer Studio 7.1.1.GA on Redhat Linux In Eclipse the project
has a number of errors in CDI modules, but builds without errors in maven.
The Java auto-complete works correctly as I import annotations, but after is
is imported I get an error in the file showing
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.context.Dependent;
import javax.enterprise.inject.Disposes;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
The above all show the same type of error:
Only a type can be imported. javax.enterprise.inject.Disposes resolves to a
package
It seems to be limited to the javax cdi includes
This is a maven project, and maven compiles it with no problems. Only
Eclipse seems to have an issue.
I have m2eclipse installed as well.
In addition, if I use Java 7 syntax extensions it complains about those too.
The maven pom specifies Java 1.7, the project facets specifies 1.7 and the
default compliance level is also Java 1.7. But something somewhere doesn't
like it. Again, a maven build works. Only Eclipse has problems. I suspect
the Eclipse Drools plugin may be at fault as I don't see this in non-Drools
projects
I see this in the standard Java files, not the .drl files. It is quite
annoying and frustrating. We have to build using only maven
I found that this can be easily reproduced. You need m2eclipse installed,
and the drools 6.0.1.Final eclipse plugin installed
1. In Eclipse create a new drools project
2. Convert the project to maven
3. add the javax.enterprise:cdi-api (version 1.1) dependency
4. Maven>Update Project
5. edit a java file in the project and try to add one of the above listed
imports and you will see the same error.
I believe that this is also related:
I set my pom.xml to java 7, verified that the project was java 7 compliance
etc and the eclipse editor still complained about the use of Java 7 features
like the "diamond" operator.
It seems that Drools doesn't like Eclipse and Java 7...
<http://drools.46999.n3.nabble.com/file/n4030485/EclipseErrors.png>
--
View this message in context: http://drools.46999.n3.nabble.com/Problem-with-Drools-6-0-1-Eclipse-Proje...
Sent from the Drools: User forum mailing list archive at Nabble.com.
10 years, 5 months
gradle and drools
by Mercier Jonathan
Dear,
Gradle become day after day more popular. In more spring and hibernate
project switch to this tools. So how we can use this tools with drools
to get an uniform build system ?
Regards
10 years, 5 months
Drools Performance Analysis Required
by Zahid Ahmed
Hi,
I need to know the Drools capacity to execute the rules.
I need to know how many rules it can execute at a time and with how many facts.
I need to know the memory stats.
We are planning for a central rules execution server with executing around 10,000 rules per request and requests per minute can be ~300.
Has anyone done the benchmarking. Or is there any scalable solution that can be implemented.
10 years, 5 months