0 Replies Latest reply on Apr 25, 2011 11:56 AM by heyyou

    JBoss SOA/ESB multi-queue performance

    heyyou

      JBoss AS 5.1

       

      JBoss SOA 5.0.2

      JBoss Messaging 1.4.7

       

      Is there a recommended configuration for supporting multiple JMS queue routing?

       

      At the moment, I just want to test a simple routing configuration that simply routes all JMS messagings from 10 inbound queues to 10

      outbound queues :

       

          InboundQueue1 -> OutboundQueue1

          InboundQueue2 -> OutboundQueue2

          ...

          InboundQueue10 -> OutboundQueue10

       

      I'm tried four different techniques:

       

       

       

      Syntax #1:  Single ESB + multiple inbound queues + multiple services (using invmScope)

         1.  Define each inbound queue in the <providers>..</providers> section

         2.  Create a <service> definition for each inbound/outbound pair of queues

              - Use 'invmScope="GLOBAL"' in my "<service .." declaration for each service

              - Use "org.jboss.soa.esb.actions.routing.JMSRouter" to route messages to corresponding outbound queue

       

       

      Syntax #2: Single ESB + multiple inbound queues + multiple services (using internal queue)

         1.  Define each inbound and "internal" queue (for each inbound queue) in the <providers>..</providers> section

         2.  Create a <service> definition for each inbound/outbound pair of queues

              - Use 'internal" queue to route messages between inbound and outbound queues

              - Use "org.jboss.soa.esb.actions.routing.JMSRouter" to route messages to corresponding outbound queue

       

      Syntax #3: Multiple ESB with single inbound queue + invmScope

          Create 10 separate ESB configurations for each pair of inbound/outbound queues and use invmScope

       

      Syntax #4: Multiple ESB with single inbound queue + internal queue

           Create 10 separate ESB configurations for each pair of inbound/outbound queues and use the "internal" queue.

       

      I can not do any better than 205 messages per second.  If I just send messages to 5 of inbound

      queues ( thus routing to only 5 outbound ), the best rate is about 104 messages per second.  If I send to

      a single inbound queue, the best I can get 880 msg/second.  All of which are extremely low performance.

       

      This is a very simple example of just passthru messages.

       

      If I define the 10 queues in JBossMessaging and just write/read for the 10 inbound queues ( since there

      isn't any routing), the message rate is in the thousands.  So JBoss ESB is definitely throttling back

      JBossMessaging.

       

      I've include the jboss-esb.xml configuration files used for the first two scenarios above.

       

      Is there a better method of defining multiple JMS queue configuration using JBoss ESB?