To see how I'm doing it look at: Preparation for use Topic and My Topic usage
Let's see my four test scenarios:
- Client connect to one broker then start to generate messages (10 per second) and recive.
- Client connect to one broker then start to generate messages (10 per second) and recive but between sending messages he disconnect from broker and connect again.
- Client connect to the brokers with failover option:
failover://(tcp://192.168.44.133:61616,tcp://192.168.4.61:61616,tcp://192.168.4.62:61616,tcp://192.168.4.40:61616)
then start to generate messages (10 per second) and recive. - Client connect to the brokers with failover option:
failover://(tcp://192.168.44.133:61616,tcp://192.168.4.61:61616,tcp://192.168.4.62:61616,tcp://192.168.4.40:61616)
then start to generate messages (10 per second) and recive but between sending messages it disconnects from broker and connects again.
For testing were used 4 brokers in version 5.4.2 in failover mode with configuration:
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:${activemq.base}/conf/credentials.properties</value>
</property>
</bean>
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true">
<networkConnectors>
<networkConnector name="test-net" uri="static:(tcp://192.168.44.133:61616,tcp://192.168.4.61:61616,tcp://192.168.4.62)"/>
</networkConnectors>
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
</transportConnectors>
</broker>
<import resource="jetty.xml"/>
</beans>
You can do the test on your own using my demonstrator application. The demonstrator application is available for download from: Demonstrator application topic test or Demonstrator application topic test.
Few words about usage:
- Fill the fields in step 1 and push the button Connect
- Choose generator type, set time for test (in hours) and timer interval for sending messages (in milisecond)
Test results:
Tests 1 and 3 have been successfully completed. All messages are sent and received. In test 2 some messages disappeared but it's understandable when a client connects and disconnects from broker.
The worst falls last test. Actually it's not coming to an end. When a client running in failover connection and disconnection causes a rapid increase memory usage and the application stops responding!!!
This bug is described on ActiveMQ jira with key AMQNET-298 .
Don't worry!!! Guys from ActiveMQ team already have fixed this bug in NMS version nms-1.5.0 .
The next test will check if the bug has been fixed!
The worst falls last test. Actually it's not coming to an end. When a client running in failover connection and disconnection causes a rapid increase memory usage and the application stops responding!!!
This bug is described on ActiveMQ jira with key AMQNET-298 .
Don't worry!!! Guys from ActiveMQ team already have fixed this bug in NMS version nms-1.5.0 .
The next test will check if the bug has been fixed!
No comments:
Post a Comment