[esb-issues] [JBoss JIRA] Commented: (JBESB-1504) CBR using rules has poor performance
Daniel Bevenius (JIRA)
jira-events at lists.jboss.org
Tue Jun 24 08:36:28 EDT 2008
[ http://jira.jboss.com/jira/browse/JBESB-1504?page=comments#action_12418696 ]
Daniel Bevenius commented on JBESB-1504:
----------------------------------------
I've taken a look at this and created a unit test. I noticed that the service attached to this Jira is using ruleReload=true:
<property name="ruleReload" value="true"/>
This will cause the rules to be parsed everytime they are run. This is quite a heavy operation and not something one would want to do if performance is an issue.
Perhaps a more common scenario would be to run the test after the rules have been parsed. This would then test the actual XPath functions.
This would mean setting 'ruleReload' to false and then the first execution will take longer time but the following runs should be a lot faster.
I currently don't have access to svn.corp.jboss.com but I'll try to get access and run the same test.
> 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
> Assigned To: Daniel Bevenius
> Fix For: 4.4
>
> 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/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: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list