[esb-issues] [JBoss JIRA] Created: (JBESB-2152) CBR using rules has poor performance
Kevin Conner (JIRA)
jira-events at lists.jboss.org
Wed Nov 5 08:18:48 EST 2008
CBR using rules has poor performance
------------------------------------
Key: JBESB-2152
URL: https://jira.jboss.org/jira/browse/JBESB-2152
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Content Based Routing
Affects Versions: 4.2.1
Environment: SOA-P 4.2.0.beta1
Reporter: Martin Vecera
Assignee: Daniel Bevenius
Fix For: 4.4
We have a simple performance that uses ContentBasedRouter to route XML messages:
<action class="org.jboss.soa.esb.actions.ContentBasedRouter" name="ContentBasedRouter">
<property name="ruleSet" value="MyESBRules-XPath.drl"/>
<property name="ruleLanguage" value="XPathLanguage.dsl"/>
<property name="ruleReload" value="true"/>
<property name="destinations">
<route-to destination-name="regular1" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular2" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular3" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular4" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular5" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular6" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular7" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular8" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular9" service-category="wiretapCategory1" service-name="regularService"/>
<route-to destination-name="regular0" service-category="wiretapCategory1" service-name="catchService"/>
</property>
</action>
I have created a rule set of 100 rules. Like this:
package com.jboss.soa.esb.routing.cbr
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.format.MessageType;
expander XPathLanguage.dsl
global java.util.List destinations;
rule "ProductId1"
salience 100
when
xpathEquals "/Order/OrderLines/OrderLine/Product/@productId", "1"
then
Destination : "regular1";
end
...
rule "ProductId299"
salience 100
when
xpathEquals "/Order/OrderLines/OrderLine/Product/@productId", "299"
then
Destination : "regular0";
end
rule "Default rule"
salience 1
when
then
Destination : "regular0";
end
See https://svn.corp.jboss.com/repos/soa/trunk/qa/tests/quickstarts/performance8/MyESBRules-XPath.drl for the whole file.
The performance is very poor (see SOA-240 for reports). Only a tens of messages per second.
What's the problem here? Is the Rules engine really so slow? Or is it parsing the file every time a message arrives?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list