[ 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&copyMessageOnSend=false&disableTimeStampsByDefault=true&doMessageCompression=false&doMessageFragmentation=false&prepareMessageBodyOnSend=false&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