2 Replies Latest reply on Apr 18, 2011 1:49 PM by heyyou

    JBossSOA/ESB + JBossMessaging Performance

    heyyou

      Environment:

      JBoss SOA/ESB 5.0.2 with JBossMessaging.

      RHEL

      Sun JVM 1.6  ( heapsize = 4GB)

       

      Hello,

       

      When I run a simple JMS routing scenario, I get increditably low message rate ( 126 msg/sec) using JBoss ESB + JBoss Messaging.

      The scenario is to simply route all messages from inbound JMS queue (queue/IN) to an outbound JMS queue (queue/OUT).  Below

      is a snipet from my jboss-esb.xml.  I do not want persistence.  I have tried different # of threads and interesting enough that going with

      300 threads ( seems excessive ) is giving me better performance.  I might get one GC during a run and its a minor GC, so GC is

      not slowing down JBoss.  The system utilization is running real low .. about 10-15%.

       

      For such a simple configuration, any tips/pointers that might help improve the message rate?

       

       

      <providers>

                <jms-provider name="JBossMessaging"  connection-factory="ConnectionFactory">

       

                    <jms-bus busid="inbound">

                        <jms-message-filter   dest-type="QUEUE" dest-name="IN"  />

                    </jms-bus>

       

                    <jms-bus busid="internal">

                        <jms-message-filter  dest-type="QUEUE"  dest-name="queue/INTERNAL" />

                    </jms-bus>

       

                </jms-provider>

      </providers>

       

      <services>

              <service category="JMSPassthru" name="SimpleListener" invmScope="GLOBAL"description="JMS passthru sample">

       

                  <property name="maxThreads" value="300"/>

       

                  <listeners>

                      <jms-listener name="JMS-Gateway"

                                      maxThreads="300"

                                      busidref="inbound" is-gateway="true" />

       

                      <jms-listener name="JMSpassthru"

                                    busidref="internal"/>

                  </listeners>

       

                  <actions mep="OneWay">

       

                      <action name="outbound"

                              class="org.jboss.soa.esb.actions.routing.JMSRouter">

       

                              <property name="connection-factory"

                                              value="ConnectionFactory"/>

                              <property name="jndiName"

                                      value="queue/OUT"/>

       

                              <property name="unwrap" value="true"/>

                              <property name="persistent" value="false"/>

       

                      </action>

       

                  </actions>

              </service>

        • 1. JBossSOA/ESB + JBossMessaging Performance
          heyyou

          Some additional information.

           

          This is a 12core Intel machine ..

           

          Also, as I try to incresae the load I start getting the following messages:

           

          12:01:12,450 WARN  [ActionProcessingPipeline] No fault address defined for fault message! To: InVMEpr [ PortReference < <wsa:Address invm://4a4d53506173737468727524242424242424242424242453696d706c654c697374656e6572/false?false#10000/>, <wsa:ReferenceProperties jbossesb:passByValue : false/> > ] MessageID: aa4d2b39-9c15-4f10-b27d-2a2ffad8b1fe RelatesTo: jms:correlationID#CLIENTH61_Thread0

           

          12:01:12,491 INFO  [ServiceInvoker] Unresponsive EPR: JMSEpr [ PortReference < <wsa:Address jms:127.0.0.1:1099#queue/DeadMessageQueue/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.initial : org.jnp.interfaces.NamingContextFactory/>, <wsa:ReferenceProperties jbossesb:java.naming.provider.url : 127.0.0.1:1099/>, <wsa:ReferenceProperties jbossesb:java.naming.factory.url.pkgs : org.jnp.interfaces/>, <wsa:ReferenceProperties jbossesb:destination-type : queue/>, <wsa:ReferenceProperties jbossesb:destination-name : queue/DeadMessageQueue/>, <wsa:ReferenceProperties jbossesb:specification-version : 1.1/>, <wsa:ReferenceProperties jbossesb:connection-factory : ConnectionFactory/>, <wsa:ReferenceProperties jbossesb:persistent : true/>, <wsa:ReferenceProperties jbossesb:acknowledge-mode : AUTO_ACKNOWLEDGE/>, <wsa:ReferenceProperties jbossesb:transacted : false/>, <wsa:ReferenceProperties jbossesb:type : urn:jboss/esb/epr/type/jms/> > ] for message: header: [ To: InVMEpr [ PortReference < <wsa:Address invm://4a4d53506173737468727524242424242424242424242453696d706c654c697374656e6572/false?false#10000/>, <wsa:ReferenceProperties jbossesb:passByValue : false/> > ] MessageID: b72a5a48-9a38-4006-b0bd-8f6d19f7acda RelatesTo: jms:correlationID#CLIENTH61_Thread0 ]

           

          I do see some similar JIRA's that have been created in the past.  For a similar bug related to webservices, it suggested

          to increase the connectionPool in :

           

                $JBOSS_HOME/server/default/jbossesb.sar/jbossesb-properties.xml

           

          One issue is that this file does not exist in this location for JBoss SOA 502.

          The file seems to be included in the deployed project.  I've bumped the value to '50'.

           

          Any thoughts out there?

           

          Seems like very low "out of the box" performance for JBoss.

          • 2. JBossSOA/ESB + JBossMessaging Performance
            heyyou

            I've also made changes to the following parameters in :

             

            $JBOSS_HOME/server/default/deploy/messaging/connection-factories-service.xml

             

            <attribute name="PrefetchSize">150</attribute>

            <attribute name="DefaultTempQueueFullSize">200000</attribute>

            <attribute name="DefaultTempQueuePageSizeSize">2000</attribute>

            <attribute name="DefaultTempQueueDownCacheSize">2000</attribute>

             

            I've tried higher and lower values, still no improvements in the # of messages.

             

            Based on this article:

             

            Here is an article for JBoss Messaging:

            http://docs.jboss.org/jbossmessaging/docs/userguide-2.0.0.alpha1/html/performance.html

             

            that implies you should expect to see higher performance #s with JBoss messaging, so

            does this mean that JBoss ESB is significantly throttling back JBoss messaging?

             

            Thanks

            Jon