Does SwitchYard in FSW 6 offer an option to switch off ManagementLoadTask thread?

Solution Verified - Updated -

Environment

  • Red Hat JBoss Fuse Service Works (FSW)
    • 6.0.0

Issue

  • It has been observed that ManagementLoadTask thread has been leading to performance degradation in the case of many Switchyard jar files are deployed on Red Hat JBoss Fuse Service Works 6.0.0 server. This ManagementLoadTask thread has one-to-one relationship with the Switchyard jar file that is deployed.
    e.g. if 3 Swithchyard jar files are deployed then 3 ManagementLoadTask treads are operating at all times until the server is stopped. The ManagementLoadTask tread runs every 1 second and calculate the load task by default [1] .
    Hence, the obvious option seems to be to switch off the ManagementLoadTask thread from running.
    In case of Camel, it gives an options to tune the statisticsLevel attribute in order to stop the ManagementLoadTask thread. The Camel documentation's Configuring level of granularity for performance statistics section [2] talks about this parameter.
  • Does Switchyard provide support to the attribute like statisticsLevel through which the ManagementLoadTask thread can be stopped from running to gain the performance boost?
  • If the option is not supported currently by Switchyard , is there any workaround for solving the issue [1] ?

[1] Add option to disable ManagementLoadTask
[2] Camel JMX

Resolution

  • The current release of Red Hat JBoss Fuse Service Works 6.0.0 does not contain the version of Camel which incorporated this feature [1] (which as per the JIRA [1] is version 2.11.0) of tuning the attribute statisticsLevel. Currently Switchyard doesn't provide a way to use the camelContext configuration which could help users to configure the attribute statisticsLevel for incorporating this feature like the way [2] it is shown below.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <jmxAgent id="agent" statisticsLevel="RoutesOnly"/>
 ...
</camelContext>
  • It has been raised as a Feature Request in JBoss Community (filed through the following JIRAs [3][4]) and the matter has been put before the respective Product Management team as well through a Request for Feature Enhancement so that this feature could be added in future releases of Red Hat JBoss Fuse Service Works. The tracking reference numbers for the related request are PRODMGT-714 and PRODMGT-715 , which can be quoted for future communications by customers to follow-up with Red Hat to track it's status through support cases.
  • Looking at the Camel JIRA [1], one workaround would be to disable JMX instrumentation completely. But, that's a bit of an extreme step though, and before making that kind of move do consider to compare whether it can really justify the performance overhead caused by the ManagementLoadTask thread.

[1] Add option to disable ManagementLoadTask
[2] Camel JMX
[3] Enable CamelContext configuration in SwitchYard to support tuning of statisticsLevel parameter
[4] Upgrade the Camel component shipped with SwithYard to enable the CamelContext configuration as required in SWITCHYARD-1961

Root Cause

  • The current release of Red Hat JBoss Fuse Service Works 6.0.0 does not contain the version of Camel which incorporated this feature [1] (which as per the JIRA [1] is version 2.11.0) of tuning the attribute statisticsLevel. Currently Switchyard doesn't provide a way to use the camelContext configuration which could help users to configure the attribute statisticsLevel for incorporating this feature like the way [2] it is shown below.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <jmxAgent id="agent" statisticsLevel="RoutesOnly"/>
 ...
</camelContext>

[1] Add option to disable ManagementLoadTask
[2] Camel JMX

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments