[
http://jira.jboss.com/jira/browse/JBESB-1504?page=comments#action_12396130 ]
Kevin Conner commented on JBESB-1504:
-------------------------------------
Thanks Martin, will look into this.
CBR using rules has poor performance
------------------------------------
Key: JBESB-1504
URL:
http://jira.jboss.com/jira/browse/JBESB-1504
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
Attachments: JBESB-1504.tar.bz2
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/performan...
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:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira