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/

Reply via email to