3 Replies Latest reply on Jan 10, 2011 10:47 AM by Nigel Deakin-Oracle

    Performence Advice


      We are trying to implement IPC2501 spec and our requirement is to process 30(upload)/66(download) SOAPMessages transactions per second,
      when a message arrives we put the message in ‘Activemq’ /OpenMQ, and some metadata info (such as JMSMessageid, Sender, etc) into the database,
      when requestor sends a request for message we pull the message from ‘Activemq’/openmq and send it to the receiver by modifying the headers (with the metadata stored earlier),
      everything is working good but we are having problem with performance,
      We are almost successful in upload (i.e., 30 uploads /sec) but having problem with download we use QueueBrowser with JMSMessageid (from metadata) to retrieve message which is taking about 30~200 milliseconds, where as MessageConsumer.receive() method take just 5 milliseconds but the problem with receive() is , it dequeues message from queue where as we should secure the message until we receive Acknowledgement from Client (Message Guarantee) , any advice on how to achieve this performance ?

        • 1. Re: Performence Advice
          Nigel Deakin-Oracle
          Dear user13623849,

          You mention both ActiveMQ and Open MQ, but don't say which provider your performance query relates to, or how the two compare.

          Can you give some more information about why you need to use the queue browser and how are you using it?

          Would you be able to achieve the behaviour you require by consuming the message with client acknowledgement or in a local transaction?

          • 2. Re: Performence Advice
            Hi Nigel,

            We tested with both providers "Activemq"/"OPENMQ", performace is more or less the same,

            the reason for using queuebrowser is Message should not be delete until application receives an Acknowledgement from client ( Note : this is not same as JMS Acknowledge Mode).

            We may atleast hit closer to our performace target, if we Consume the message, but the issue with Consumer is it does not garentee message delivary,

            • 3. Re: Performence Advice
              Nigel Deakin-Oracle

              If you're relying on the queue browser in normal message processing, please note the caveats about the queue browser in the JMS spec.

              You say that you don't want to "delete" a message until the application receives a notification from the client that it should do so. That is what client-acknowledgement or local transactions were provided for. Obviously I don't enough about your application to understand why you can't use them, but you would probably get better performance if you could.