activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gabriel kastenbaum <gkastenbaummailingl...@gmail.com>
Subject Disconnection and reconnection in a network of brokers
Date Sat, 25 Nov 2006 20:12:30 GMT
Hi,
 
I'm a newbie with ActiveMQ so my troubles may be due to a bad 
configuration.
Here's my problem :
There are 3 servers (IP=100.29.191.225, 100.29.191.226 and 100.29.191 
.227) .
All the 3 servers are working on Linux (kernel=2.4).

Servers 1 and 2 sends messages  to server 3 through queues.
Server 3 sends messages to 1 and 2 through a topic.
Since multicast isn't available on my network, I've to use static 
addresses.
ActiveMQ is integrated with JBoss. The integration includes both inbound 
and outbound messages. Inbound messages are handled by Message Driven 
Beans (MDBs) and outbound messages are published by an EJB Stateless 
Session Bean. I'm using a JRE 1.5_09

 

 
1)      I used ActiveMQ 4.0.1 for my first tests.
*_activemq.xml file for server 1 was :_*
<beans xmlns="http://activemq.org/config/1.0">
  <bean 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> 

  <broker brokerName="${hostname}" useJmx="true">
    <memoryManager> 
        <usageManager id="memory-manager" limit="1048576"/>
    </memoryManager>
    <managementContext>
       <managementContext connectorPort="1097" 
jmxDomainName="org.apache.activemq"/>
    </managementContext>
     <destinationPolicy>
      <policyMap><policyEntries>
       
          <policyEntry topic="FOO.>">
            <dispatchPolicy>
              <strictOrderDispatchPolicy />
            </dispatchPolicy>
            <subscriptionRecoveryPolicy>
              <lastImageSubscriptionRecoveryPolicy />
            </subscriptionRecoveryPolicy>
          </policyEntry>
      </policyEntries></policyMap>
    </destinationPolicy>

    <persistenceAdapter>
            <journaledJDBC useJournal="false" useQuickJournal="false" 
dataSource="#postgres-ds"/>
    </persistenceAdapter>
     <transportConnectors>
       <transportConnector name="dossierspistes" 
uri="tcp://localhost:61611" brokerName="${hostname}"/>
    </transportConnectors>
    <networkConnectors>
       <networkConnector name="dossierspistes" 
uri="static://(tcp://100.29.191.227:61611)" failover="true" 
networkTTL="255" brokerName="${hostname}"/>
      </networkConnectors>  
  </broker>
 
  <bean id="postgres-ds" class="org.postgresql.ds.PGPoolingDataSource">
    <property name="serverName" value="127.0.0.1"/>
    <property name="databaseName" value="activemq"/>
    <property name="portNumber" value="0"/>
    <property name="user" value="postgres"/>
    <property name="password" value=""/>
    <property name="dataSourceName" value="postgres"/>
    <property name="initialConnections" value="2"/>
    <property name="maxConnections" value="10"/>
  </bean>
</beans>
 
*_file for server 2 :_*
(...)
       <networkConnector name="dossierspistes" 
uri="static://(tcp://100.29.191.227:61611)" failover="true" 
networkTTL="255" brokerName="${hostname}"/>
(...)
*_file for server 3 :_*
(...)
       <networkConnector name="dossierspistes" 
uri="static://(tcp://100.29.191.225:61611,tcp://100.29.191.226:61611)" 
failover="true" networkTTL="255" brokerName="${hostname}"/>
(...) *__*
*_META-INF/ra.xml (on the 3 servers) :_*
<config-property-value>tcp://localhost:61611</config-property-value> *__*
*_No broker-config.xml_*
*__*


If  the servers are on line during all the operations, everything goes 
well : messages are published and received by all.
The problems came when I disconnected Server 1.
a) Server 3 published a message on its topic : server 2 received it. But 
when server 1 came back online, it did *not* get the message.
b) Server 1 sent a message on its queue and then came back online : 
Server 3 did not receive it.
 
 
2)      Thinking it may be due to 
http://issues.apache.org/activemq/browse/AMQ-895, 
<http://issues.apache.org/activemq/browse/AMQ-895>I've used the patch 
for ActiveMQ 4.0.2 with the same configuration files but the problem 
still remains.
 
 
3)      My third tests was with ActiveMQ  4.1. The configuration was 
quite the same :
*_activemq.xml, Server 1 :
_*(...)
    <transportConnectors>
       <transportConnector name="dossierspistes-tp" 
uri="tcp://localhost:61616" brokerName="${hostname}"/>
    </transportConnectors>
 
    <networkConnectors>
       <networkConnector name="dossierspistes-nc" 
uri="static://(tcp://100.29.191.227:61616)" failover="true" 
networkTTL="255" brokerName="${hostname}"/>
    </networkConnectors>  
(...)
 
*_Server 2 :_*
(...)
       <networkConnector name="dossierspistes-nc" 
uri="static://(tcp://100.29.191.227:61616)" failover="true" 
networkTTL="255" brokerName="${hostname}"/>
 (...)
 
*_Server 3 :_*
(...)
       <networkConnector name="dossierspistes-nc" 
uri="static://(tcp://100.29.191.225:61616,tcp://100.29.191.226:61616)" 
failover="true" networkTTL="255" brokerName="${hostname}"/>
(...)
*__*
All servers stayed online during the test. No disconnection
Server 3 published a message on its topic.
            Server 2 received it.
            Server 1 sometimes receives the messages, but does not 
receive messages at all.
 
Am I missing something ?

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message