2 Replies Latest reply on Jan 24, 2008 11:28 AM by sanches

    Speeding up messages through ESB

    sanches

      Hi all,

      I am novice at ESB, trying to get in now.
      I tried out 'load_generator' sample and found out that the time when message sits in the bus grows up to 30 secs (using the deafult settings from load_generator). Discovered this by adding the creation time to the message as a property and later comparing it to the time when message arrives to the service. Grows from 15ms for first messages up to 30 sec for last one.
      I wonder if there are any ways to speed up message's pushing through the bus.

      Can I turn off persistance to get lightweighter ESB?
      Is there any other services that could be turned off to get the higher performance, even loosing some functionality?

      Thank you,
      Alex

        • 1. Re: Speeding up messages through ESB
          mvecera

          Hello,

          can you show me your jboss-esb.xml here (at least some "important" parts)? You can use jms-jca-provider and have the queues served by more threads for instance. But it depends on the content/intent of your ESB deployment.

          • 2. Re: Speeding up messages through ESB
            sanches

            Martin,

            This is the default jboss-esb.xml from load_generator:

            
            <?xml version = "1.0" encoding = "UTF-8"?>
             <jbossesb
             xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
             parameterReloadSecs="5">
            
             <providers>
             <jms-provider name="JBossMQ"
             connection-factory="ConnectionFactory"
             jndi-URL="jnp://127.0.0.1:1099"
             jndi-context-factory="org.jnp.interfaces.NamingContextFactory"
             jndi-pkg-prefix="org.jboss.naming:org.jnp.interfaces">
            
             <jms-bus busid="quickstartGwChannel">
             <jms-message-filter dest-type="QUEUE"
             dest-name="queue/quickstart_load_generator_Request_gw" />
             </jms-bus>
             <jms-bus busid="quickstartEsbChannel">
             <jms-message-filter dest-type="QUEUE"
             dest-name="queue/quickstart_load_generator_Request_esb" />
             </jms-bus>
             <jms-bus busid="quickstartEsbChannel2">
             <jms-message-filter dest-type="QUEUE"
             dest-name="queue/quickstart_load_generator_Request_esb2" />
             </jms-bus>
             </jms-provider>
             </providers>
            
             <services>
             <service category="LoadServiceCategory" name="DummyJMSLoad"
             description="Load test dummy service. used to debug load test scripts.">
             <listeners>
             <jms-listener name="JMS-Gateway"
             busidref="quickstartGwChannel" maxThreads="10" is-gateway="true" />
             <jms-listener name="load_generator"
             busidref="quickstartEsbChannel" maxThreads="10" />
             </listeners>
             <actions mep="OneWay">
             <action name="action1"
             class="org.jboss.soa.esb.samples.quickstart.load_generator.JMSLoadAction"
             process="doNothing" />
             <action name="routeAction" class="org.jboss.soa.esb.actions.StaticRouter">
             <property name="destinations">
             <route-to service-category="LoadServiceCategory" service-name="DummyJMSLoad2" />
             </property>
             </action>
             </actions>
             </service>
             <service category="LoadServiceCategory" name="DummyJMSLoad2"
             description="Load test dummy service. used to debug load test scripts.">
             <listeners>
             <jms-listener name="load_generator"
             busidref="quickstartEsbChannel2" maxThreads="10" />
             </listeners>
             <actions mep="OneWay">
             <action name="action1"
             class="org.jboss.soa.esb.samples.quickstart.load_generator.JMSLoadAction"
             process="displayMessage" />
             <action name="action2"
             class="org.jboss.soa.esb.actions.SystemPrintln">
             <property name="printfull" value="true" />
             </action>
             </actions>
             </service>
             </services>
            
             </jbossesb>
            


            I tried to increase ThreadsCount from 1 up to 10.That decreased the delay three times.
            But that is still not enough.
            Can I disable Hypersonic (Hibernate) for the bus? I just can not find a mention about that anywhere in the documentation...

            I guess it'll drastically improve the time when the message lays in the bus as it won't have to be serialized/deserialized.

            Thanks.