camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vanshul.Chawla <Vanshul.Cha...@target.com>
Subject RE: JMS MQ performance improvement
Date Mon, 08 Jun 2015 09:33:56 GMT
When I increase to 100, it goes up to 80 max and then again comes down slowly to same range
of 25-33. 
Its non transacted only.

If u see now:

  599   0.12%    500000     9     0      0                                              E
E - PERF.CAMEL.TCOM.FINANCIALFEED.OMS.PUB.1
        702   0.14%    500000     8     0      0                                         
    E E - PERF.CAMEL.TCOM.FINANCIALFEED.OMS.PUB.2
        628   0.13%    500000     7     0      0                                         
    E E - PERF.CAMEL.TCOM.FINANCIALFEED.OMS.PUB.3
Mon Jun 8 04:32:13 CDT 2015

Only 9,8,7 threads and messages on queue are 599,702,628

I am pushing a continuous load. Pasting the part of blueprint(some java classes are used in
real code. This code is edited for perf test run)

-------------------------

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/blueprint"
	xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
	xsi:schemaLocation="
    http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
    http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">

  <cm:property-placeholder id="fuse-oms-financial-feed-bundle-config"
		persistent-id="com.tgt.rjf.oms.financial.feed" update-strategy="reload">
    <cm:default-properties />
  </cm:property-placeholder>
  <bean id="myAggregationStrategy" class="com.tgt.tcom.il.aggregator.MyAggregationStrategy"
/>

  <bean id="removeSpacesFromFile" class="com.tgt.tcom.il.financial.RemoveSpacesFromFile"
/>

  <bean id="removeSpecialChar" class="com.tgt.tcom.il.financial.RemoveSpecialCharFromFile"
/>

  <bean id="setHeaders" class="com.tgt.tcom.il.financial.SetHeadersForRoutes"></bean>

  <bean id="executor" class="java.util.concurrent.Executors"
		factory-method="newFixedThreadPool">
    <argument index="0" value="16" />
  </bean>
  <bean id="exceptionmessage" class="com.tgt.tcom.il.error.ErrorHandler" />

  <bean id="userException" class="java.lang.IllegalArgumentException">
    <argument index="0" value="UserException" />
  </bean>
  <!-- Queue Manager Connection factory(s) -->
  <bean id="wmqConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="CCDTURL">
      <bean class="com.tgt.tcom.il.financial.MQConnectionFactoryUtil"
				factory-method="convert">
        <argument value="${financial.WMQ.CCDTfile_Stage}" />
      </bean>
    </property>
    <property name="queueManager" value="${financial.WMQ.QMName_Stage3}" />

  </bean>
  <!-- Cache Connection Factory -->

  <bean id="cachingWmqConnectionFactory"
		class="org.springframework.jms.connection.CachingConnectionFactory"
		destroy-method="destroy">
    <property name="targetConnectionFactory" ref="wmqConnectionFactory" />
    <property name="cacheConsumers" value="true" />
    <property name="reconnectOnException" value="true" />
    <property name="sessionCacheSize" value="10" />
  </bean>

  <!--Spring Transaction Manager -->

  <bean id="wmqTransactionManager"
		class="org.springframework.jms.connection.JmsTransactionManager">
    <property name="connectionFactory" ref="wmqConnectionFactory" />
  </bean>

  <!--JMS components used for Endpoints -->
  <bean id="wmq-qm" class="org.apache.camel.component.jms.JmsComponent">
    <property name="connectionFactory" ref="cachingWmqConnectionFactory" />
    <property name="transactionManager" ref="wmqTransactionManager" />
    <property name="transacted" value="false" />
    <property name="cacheLevelName" value="CACHE_AUTO" />
    <property name="concurrentConsumers" value="40" />
    <property name="maxConcurrentConsumers" value="60" />
  </bean>
  <camelContext id="FinancialFeed-Pub" errorHandlerRef="EH"
		xmlns="http://camel.apache.org/schema/blueprint">
    <propertyPlaceholder id="properties"
			location="blueprint:fuse-oms-financial-feed-bundle-config" />
    <errorHandler type="DeadLetterChannel"
			deadLetterUri="wmq-qm:queue:{{financial.Perf.WMQ.FinFeedErrorQueue}}"
			id="EH">
    </errorHandler>
    <onException>
      <description>
        What to be done on exception
        Send to Error queue
      </description>
      <exception>java.lang.Exception</exception>
      <log
				message="Message not moved to Queue successfully due to ${exception.message}"
				loggingLevel="ERROR">

        <description>
          No redelivery attemmpts. For cases like HTTP 500,
          socket, just increase
          the value of maximumRedeliveries and delay
          Logging error message
        </description>
      </log>
      <process ref="exceptionmessage">
        <description>
          Original payload message in one queue like our ORIG
          queues
          Generate exception message in java code
        </description>
      </process>
      <process ref="removeSpecialChar">
        <description>
          Original payload message in one queue like our ORIG
          queues
          Generate exception message in java code
        </description>
      </process>
      <to uri="wmq-qm:queue:{{financial.Perf.WMQ.FinFeedErrorQueue}}" />
    </onException>
    <route customId="true" handleFault="true" id="FinFeedRouterMainRoute1">
      <from uri="wmq-qm:queue:{{financial.Perf.WMQ.OMSPub1Queue}}" />
      <process ref="setHeaders" />
     <log loggingLevel="INFO" logName="FinFeedPubAuditLog"
				message="Timestamp=${date:now:yyyy-MM-dd hh:mm:ss.SSS} : MessageType=${in.header.MessageType}
: Action=${in.header.Action} : MessageSubType=${in.header.MessageSubType} : OrderNo=${in.header.OrderNo}
: ReceiptNo=${in.header.ReceiptNo} : ShipmentNo=${in.header.ShipmentNo} : InvoiceNo=${in.header.InvoiceNo}
" />
      <to uri="wmq-qm:queue:{{financial.Perf.WMQ.DWSub1Queue}}" />
     </route>
    <route handleFault="true" id="FinFeedRouterMainRoute2">
      <from uri="wmq-qm:queue:{{financial.Perf.WMQ.OMSPub2Queue}}" />
      <process ref="setHeaders" />
     
      <log loggingLevel="INFO" logName="FinFeedPubAuditLog"
				message="Timestamp=${date:now:yyyy-MM-dd hh:mm:ss.SSS} : MessageType=${in.header.MessageType}
: Action=${in.header.Action} : MessageSubType=${in.header.MessageSubType} : OrderNo=${in.header.OrderNo}
: ReceiptNo=${in.header.ReceiptNo} : ShipmentNo=${in.header.ShipmentNo} : InvoiceNo=${in.header.InvoiceNo}
" />
      <to uri="wmq-qm:queue:{{financial.Perf.WMQ.DWSub2Queue}}" />
     
    </route>
    <route handleFault="true" id="FinFeedRouterMainRoute3">
      <from uri="wmq-qm:queue:{{financial.Perf.WMQ.OMSPub3Queue}}" />
      <process ref="setHeaders" />
      <log loggingLevel="INFO" logName="FinFeedPubAuditLog"
				message="Timestamp=${date:now:yyyy-MM-dd hh:mm:ss.SSS} : MessageType=${in.header.MessageType}
: Action=${in.header.Action} : MessageSubType=${in.header.MessageSubType} : OrderNo=${in.header.OrderNo}
: ReceiptNo=${in.header.ReceiptNo} : ShipmentNo=${in.header.ShipmentNo} : InvoiceNo=${in.header.InvoiceNo}
" />
      <to uri="wmq-qm:queue:{{financial.Perf.WMQ.DWSub3Queue}}" />
    </route>
  </camelContext>

</blueprint>

-------------------------------------------------

Thanks and Regards,

Vanshul Chawla

-----Original Message-----
From: contactreji [mailto:contactreji@gmail.com] 
Sent: Monday, June 08, 2015 2:55 PM
To: users@camel.apache.org
Subject: Re: JMS MQ performance improvement

Interesting!

1) Can you observe how many threads initiate when your camel routes are not transacted?

2) And what if you further increase the value for maxConcurrentConsumers.
Say about 100? 

Is the count still around 25-33 range itself? can you post your camel routes here.

Cheers
Reji



-----
Reji Mathews
Sr. Developer - Middleware Integration / SOA ( Open Source - Apache Camel & Jboss Fuse
ESB | Mule ESB ) LinkedIn - http://in.linkedin.com/pub/reji-mathews/31/9a2/40a
Twitter - reji_mathews
--
View this message in context: http://camel.465427.n5.nabble.com/JMS-MQ-performance-improvement-tp5767963p5767965.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message