Hi See also AMQ FAQs http://activemq.apache.org/should-i-use-transactions.html
On Thu, Dec 9, 2010 at 2:07 PM, Ioannis Canellos <[email protected]> wrote: > Hi Claus, > > Here are the results of the tests I run: > > Producer Only: 10msg/sec (transacted=true) / 2800 msg/sec > (transacted=false). > Consumer Only: 10msg/sec transacted=true) / ~500 msg/sec (transacted=false). > > The results of the mixed is the ones I initially posted. > > The difference is so big and I have tried almost everything, but whenever I > set "transacted=true" there is nothing on earth that can give me the > slightest performance increase. > > > On Thu, Dec 9, 2010 at 11:47 AM, Claus Ibsen <[email protected]> wrote: > >> When using transacted=true then the commit is sync, and thus the >> consumer side is impacted. >> >> So you should be able to send as fast as you can. But the consumer >> side is slower due the begin/commit pair in the transaction is >> synchronous. >> >> If you use camel-jms on the consumer side to consume and process the >> messages, then its based on top of Spring JMS. >> And all the logic and code is synchronous and thus slower. >> >> Maybe you can do 3 performance tests. >> a - send only to the queue >> b - consume only from the queue (the queue is preloaded) >> c - both send and consume at the same time >> >> >> >> On Thu, Dec 9, 2010 at 10:28 AM, Ioannis Canellos <[email protected]> >> wrote: >> > I think that when I set "transacted=true" then it ignores the property >> > "useAsyncSend=true" set on the connection factory. >> > >> > I am not sure if those two properties can be used together, but they >> > probably can't and this why I have performance issues. >> > >> > >> > On Tue, Dec 7, 2010 at 3:46 PM, Ioannis Canellos <[email protected]> >> wrote: >> > >> >> I will do so. >> >> >> >> I will also check the tx scenarios described in the "Camel in Action". >> >> >> >> >> >> >> >> On Tue, Dec 7, 2010 at 3:36 PM, Claus Ibsen <[email protected]> >> wrote: >> >> >> >>> Check some of the TX unit tets in camel-jms and compare notes. >> >>> >> >>> >> >>> On Tue, Dec 7, 2010 at 2:20 PM, Ioannis Canellos <[email protected]> >> >>> wrote: >> >>> > Hi Claus, >> >>> > >> >>> > thanks for your response. >> >>> > >> >>> > I had the luck to watch that webinar and I also have the slides, the >> do >> >>> help >> >>> > in increasing the overall performance. But when I set >> transaction=true >> >>> on >> >>> > the activemq component, the performance can degrade form 2000 msg/sec >> to >> >>> 5 >> >>> > msg/sec. >> >>> > >> >>> > Regarding the number of connections, even if I increase it to 10, 20 >> or >> >>> more >> >>> > I don't see any difference at all. >> >>> > >> >>> > I feel that the problem is in my camel configuration (not activemq) >> >>> since I >> >>> > didn't have issues when I was use servicemix and activemq. >> >>> > >> >>> > Thanks again! >> >>> > >> >>> > On Tue, Dec 7, 2010 at 3:08 PM, Claus Ibsen <[email protected]> >> >>> wrote: >> >>> > >> >>> >> Ask at AMQ forum as its generally how to optimize and setup AMQ. >> >>> >> >> >>> >> Also check out maybe some of the webinars by Rob Davies on advanced >> >>> >> and high performance AMQ stuff >> >>> >> The webinars is avail at fusesource website. >> >>> >> >> >>> >> And it looks like you only got 1 connection in your pool? >> >>> >> maxConnections=1 >> >>> >> >> >>> >> >> >>> >> >> >>> >> On Mon, Nov 29, 2010 at 10:38 AM, Ioannis Canellos < >> [email protected]> >> >>> >> wrote: >> >>> >> > I am using camel 2.5.0 and activemq 5.4.0 to create a simple route >> of >> >>> the >> >>> >> > form dataset -> activemq:queue.in -> activemq:queue.out -> >> dataset. >> >>> >> > All are working fine and I the performance is more than 1K >> >>> messages/sec. >> >>> >> > >> >>> >> > However if I set transactions=true on the activemq component >> >>> >> configuration, >> >>> >> > then I experience serious performance issues (5 messages/sec). >> >>> >> > >> >>> >> > I am testing using camel:run maven plugin. My configuration is the >> >>> >> > following: >> >>> >> > >> >>> >> > <beans >> >>> >> > xmlns="http://www.springframework.org/schema/beans" >> >>> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> >>> >> > xmlns:amq="http://activemq.apache.org/schema/core" >> >>> >> > xmlns:camel="http://camel.apache.org/schema/spring" >> >>> >> > xmlns:context=" >> http://www.springframework.org/schema/context" >> >>> >> > xmlns:aop="http://www.springframework.org/schema/aop" >> >>> >> > xsi:schemaLocation=" >> >>> http://www.springframework.org/schema/beans >> >>> >> > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd >> >>> >> > http://activemq.apache.org/schema/core >> >>> >> > http://activemq.apache.org/schema/core/activemq-core.xsd >> >>> >> > http://www.springframework.org/schema/context >> >>> >> > >> http://www.springframework.org/schema/context/spring-context-3.0.xsd >> >>> >> > http://www.springframework.org/schema/aop >> >>> >> > http://www.springframework.org/schema/aop/spring-aop-3.0.xsd >> >>> >> > http://camel.apache.org/schema/spring >> >>> >> > http://camel.apache.org/schema/spring/camel-spring.xsd"> >> >>> >> > >> >>> >> > <!-- Allows us to use system properties as variables in this >> >>> >> > configuration file --> >> >>> >> > <bean >> >>> >> > >> >>> >> >> >>> >> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> >> >>> >> > >> >>> >> > <!-- ActiveMQ Broker --> >> >>> >> > <broker id="broker" xmlns=" >> http://activemq.apache.org/schema/core >> >>> " >> >>> >> > brokerName="localhost" dataDirectory="data" >> >>> >> > useJmx="true" persistent="true" >> advisorySupport="false"> >> >>> >> > <destinationPolicy> >> >>> >> > <policyMap> >> >>> >> > <policyEntries> >> >>> >> > <policyEntry queue=">" >> producerFlowControl="false" >> >>> >> > optimizedDispatch="true"> >> >>> >> > <pendingQueuePolicy> >> >>> >> > <vmQueueCursor/> >> >>> >> > </pendingQueuePolicy> >> >>> >> > </policyEntry> >> >>> >> > </policyEntries> >> >>> >> > </policyMap> >> >>> >> > </destinationPolicy> >> >>> >> > >> >>> >> > <persistenceAdapter> >> >>> >> > <kahaDB directory="data/kahadb" >> >>> enableIndexWriteAsync="true"/> >> >>> >> > </persistenceAdapter> >> >>> >> > >> >>> >> > <transportConnectors> >> >>> >> > <transportConnector name="nio" uri="nio:// >> 0.0.0.0:61616 >> >>> "/> >> >>> >> > </transportConnectors> >> >>> >> > </broker> >> >>> >> > >> >>> >> > <!-- Camel Context --> >> >>> >> > <camelContext xmlns="http://camel.apache.org/schema/spring" >> >>> >> > id="messaging" depends-on="broker"> >> >>> >> > <route> >> >>> >> > <from uri="dataset:loadtest?produceDelay=-1"/> >> >>> >> > <to uri="activemq:queue:queue.in"/> >> >>> >> > </route> >> >>> >> > </camelContext> >> >>> >> > >> >>> >> > <!-- Camel Components --> >> >>> >> > <bean id="activemq" >> >>> >> > class="org.apache.activemq.camel.component.ActiveMQComponent"> >> >>> >> > <property name="connectionFactory" >> >>> ref="pooledConnectionFactory"/> >> >>> >> > <!--property name="transacted" value="true"/> >> >>> >> > <property name="transactionManager" >> ref="transactionManager"/> >> >>> >> > <property name="transactionTimeout" value="300000"/--> >> >>> >> > <property name="acknowledgementModeName" >> >>> >> value="AUTO_ACKNOWLEDGE"/> >> >>> >> > <property name="cacheLevelName" value="CACHE_AUTO"/> >> >>> >> > </bean> >> >>> >> > >> >>> >> > >> >>> >> > <bean id="connectionFactory" >> >>> >> > class="org.apache.activemq.ActiveMQConnectionFactory"> >> >>> >> > <property name="brokerURL" value="nio://127.0.0.1:61616"/> >> >>> >> > <property name="useAsyncSend" value="true"/> >> >>> >> > </bean> >> >>> >> > >> >>> >> > <bean id="pooledConnectionFactory" >> >>> >> > class="org.apache.activemq.pool.PooledConnectionFactory"> >> >>> >> > <property name="connectionFactory" >> ref="connectionFactory"/> >> >>> >> > <property name="maxConnections" value="1"/> >> >>> >> > <property name="maximumActive" value="500"/> >> >>> >> > </bean> >> >>> >> > >> >>> >> > <!-- DataSet --> >> >>> >> > <bean id="loadtest" >> >>> >> > class="org.apache.camel.component.dataset.SimpleDataSet"> >> >>> >> > <property name="size" value="100000"/> >> >>> >> > </bean> >> >>> >> > >> >>> >> > <!-- Transaction Manager --> >> >>> >> > <bean id="transactionManager" >> >>> >> > class="org.jencks.factory.TransactionManagerFactoryBean"/> >> >>> >> > </beans> >> >>> >> > >> >>> >> > >> >>> >> > -- >> >>> >> > *Ioannis Canellos* >> >>> >> > http://iocanel.blogspot.com >> >>> >> > Integration Engineer @ Upstream S.A. < >> http://www.upstreamsystems.com >> >>> > >> >>> >> > >> >>> >> >> >>> >> >> >>> >> >> >>> >> -- >> >>> >> Claus Ibsen >> >>> >> ----------------- >> >>> >> FuseSource >> >>> >> Email: [email protected] >> >>> >> Web: http://fusesource.com >> >>> >> Twitter: davsclaus >> >>> >> Blog: http://davsclaus.blogspot.com/ >> >>> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> >>> >> >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > *Ioannis Canellos* >> >>> > http://iocanel.blogspot.com >> >>> > >> >>> > Integration Engineer @ Upstream S.A. <http://www.upstreamsystems.com >> > >> >>> > >> >>> >> >>> >> >>> >> >>> -- >> >>> Claus Ibsen >> >>> ----------------- >> >>> FuseSource >> >>> Email: [email protected] >> >>> Web: http://fusesource.com >> >>> Twitter: davsclaus >> >>> Blog: http://davsclaus.blogspot.com/ >> >>> Author of Camel in Action: http://www.manning.com/ibsen/ >> >>> >> >> >> >> >> >> >> >> -- >> >> *Ioannis Canellos* >> >> http://iocanel.blogspot.com >> >> >> >> Integration Engineer @ Upstream S.A. <http://www.upstreamsystems.com> >> >> >> >> >> >> >> > >> > >> > -- >> > *Ioannis Canellos* >> > http://iocanel.blogspot.com >> > >> > Integration Engineer @ Upstream S.A. <http://www.upstreamsystems.com> >> > >> >> >> >> -- >> Claus Ibsen >> ----------------- >> FuseSource >> Email: [email protected] >> Web: http://fusesource.com >> Twitter: davsclaus >> Blog: http://davsclaus.blogspot.com/ >> Author of Camel in Action: http://www.manning.com/ibsen/ >> > > > > -- > *Ioannis Canellos* > http://iocanel.blogspot.com > > Integration Engineer @ Upstream S.A. <http://www.upstreamsystems.com> > -- Claus Ibsen ----------------- FuseSource Email: [email protected] Web: http://fusesource.com Twitter: davsclaus Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/
