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 ?

Reply via email to