activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "james strachan (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQ-391) message consumption is too slow, only 40/s
Date Mon, 03 Jul 2006 17:40:51 GMT
     [ https://issues.apache.org/activemq/browse/AMQ-391?page=all ]
     
james strachan resolved AMQ-391:
--------------------------------

    Fix Version: 4.0.1
     Resolution: Fixed

This should be fixed in 4.0.1 now. If its not let us know and we can reopen the issue

> message consumption is too slow, only 40/s
> ------------------------------------------
>
>          Key: AMQ-391
>          URL: https://issues.apache.org/activemq/browse/AMQ-391
>      Project: ActiveMQ
>         Type: Improvement

>     Versions: 3.1
>  Environment: java version "1.5.0_05", Windows XP, Pentium IV 2.6 GHz, 1 Gb memory
>     Reporter: Daniel Aioanei
>      Fix For: 4.0.1

>
>
> For this test I used text messages  with two Long properties, two String properties and
one text message, all of them with "normal" sizes. The text message is 80 characters long,
while the String properties have 12 characters. I'm using the following activemq configuration:
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE beans PUBLIC  "-//ACTIVEMQ//DTD//EN" "http://activemq.org/dtd/activemq.dtd">
> <beans>
>   
>   <!-- ==================================================================== -->
>   <!-- ActiveMQ Broker Configuration -->
>   <!-- ==================================================================== -->
>   <broker>
>     <connector>
>       <tcpServerTransport uri="tcp://localhost:61616" backlog="1000" useAsyncSend="false"
maxOutstandingMessages="50"/>
>     </connector>
>     <persistence>
>       <cachePersistence>
>         <journalPersistence directory="../var/journal">
>           <jdbcPersistence dataSourceRef="derby-ds"/>
>         </journalPersistence>
>       </cachePersistence>
>     </persistence>
>         <redeliveryPolicy maximumRetryCount="416" backOffMode="true" backOffIncreaseRate="1"
initialRedeliveryTimeout="1000"/>
>   </broker>
>   <!-- ==================================================================== -->
>   <!-- JDBC DataSource Configurations -->
>   <!-- ==================================================================== -->
>   <!-- The Derby Datasource that will be used by the Broker -->
>   <bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
>     <property name="driverClassName">
>       <value>org.apache.derby.jdbc.EmbeddedDriver</value>
>     </property>
>     <property name="url">
>       <!-- Use a URL like 'jdbc:hsqldb:hsql://localhost:9001' if you want to connect
to a remote hsqldb -->
>       <value>jdbc:derby:derbydb;create=true</value>
>     </property>
>     <property name="username">
>       <value></value>
>     </property>
>     <property name="password">
>       <value></value>
>     </property>
>     <property name="poolPreparedStatements">
>       <value>true</value>
>     </property>
>   </bean>
> </beans>
> where activemq runs in its own jvm. After I produced about 1000 messages with a producer,
I shut it down and then start a consumer jvm. Unfortunately it can only  consume about 40
msg/second while I'd like to get about 400/s. The consumer is configured like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- START SNIPPET: spring -->
> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
> <beans>
>   <!-- START SNIPPET: jca -->
>   <bean id="jencks" class="org.jencks.JCAContainer">
>     <!-- lets use the default configuration of work manager and transaction manager-->
>     <property name="bootstrapContext">
>       <bean class="org.jencks.factory.BootstrapContextFactoryBean">
>         <property name="threadPoolSize" value="25"/>
>       </bean>
>     </property>
>     <!-- the JCA Resource Adapter -->
>     <property name="resourceAdapter">
>       <bean id="activeMQResourceAdapter" class="org.activemq.ra.ActiveMQResourceAdapter">
>         <property name="serverUrl" value="reliable:tcp://localhost:61616?asyncSend=false&amp;copyMessageOnSend=false&amp;disableTimeStampsByDefault=true&amp;doMessageCompression=false&amp;doMessageFragmentation=false&amp;prepareMessageBodyOnSend=false&amp;cachingEnabled=false"/>
>       </bean>
>     </property>
>   </bean>
>   <!-- END SNIPPET: jca -->
>   <!--
>     || an inbound message connector using a stateless, thread safe MessageListener
>     -->
>   <!-- START SNIPPET: inbound -->
>   <bean id="inboundConnectorA" class="org.jencks.JCAConnector">
>     <property name="jcaContainer" ref="jencks" />
>     <!-- subscription details -->
>     <property name="activationSpec">
>       <bean class="org.activemq.ra.ActiveMQActivationSpec">
>         <property name="destination" value="InboundQueue"/>
>         <property name="destinationType" value="javax.jms.Queue"/>
>       </bean>
>     </property>
>     <property name="ref" value="echoBean"/>
>   </bean>
>   <bean id="echoBean" class="com.foo.bar.Mdp" singleton="true"/>
>   <!-- END SNIPPET: inbound -->
> </beans>
> Mdp only reads the properties and nothing more. I tried varying threadPoolSize from 25
to 250 to no avail. I think 40 msg/second is too slow in this configuration.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message