Thanks Claus!

On Mon, Dec 13, 2010 at 4:53 PM, Claus Ibsen <claus.ib...@gmail.com> wrote:

> 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 <ioca...@gmail.com>
> 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 <claus.ib...@gmail.com>
> 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 <ioca...@gmail.com>
> >> 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 <ioca...@gmail.com>
> >> 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 <claus.ib...@gmail.com>
> >> 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 <ioca...@gmail.com
> >
> >> >>> 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 <
> claus.ib...@gmail.com>
> >> >>> 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 <
> >> ioca...@gmail.com>
> >> >>> >> 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: cib...@fusesource.com
> >> >>> >> 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: cib...@fusesource.com
> >> >>> 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: cib...@fusesource.com
> >> 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: cib...@fusesource.com
> 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>

Reply via email to