You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "james strachan (JIRA)" <ji...@activemq.org> on 2006/03/18 08:07:26 UTC

[jira] Commented: (AMQ-422) problems with reliable after network outage

    [ http://jira.activemq.org/jira//browse/AMQ-422?page=comments#action_35826 ] 

james strachan commented on AMQ-422:
------------------------------------

I'd recommend you all try out Master/Slave to give you HA

http://activemq.org/MasterSlave

which is available in the forthcoming 4.0-RC1 release (its in the current SNAPSHOT distro if you want to try it out)

> problems with reliable after network outage
> -------------------------------------------
>
>          Key: AMQ-422
>          URL: http://jira.activemq.org/jira//browse/AMQ-422
>      Project: ActiveMQ
>         Type: Bug

>   Components: Broker, Transport
>     Versions: 3.2.1, 3.1, 3.2
>  Environment: OS: winXP pro
> jdk: 1.4.2_09
>     Reporter: steve liles
>  Attachments: activeMQtest.zip
>
>
> I'm trying to create a distributed topic between two servers for high availability (pretty much as described in http://activemq.codehaus.org/Networks+of+Brokers).  Both of the servers want to produce/consume messages to/from this topic.
> The config looks like this:
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE beans PUBLIC  "-//ACTIVEMQ//DTD//EN" "http://activemq.org/dtd/activemq.dtd">
> <beans>
>   <broker>
>     <connector>
>       <tcpServerTransport uri="tcp://SERVER1:61616" backlog="1000" useAsyncSend="true" maxOutstandingMessages="50"/>
>     </connector>    
>     <networkConnector>      
>       <networkChannel uri="reliable:tcp://SERVER2:61616" remoteBrokerName="whocares"/>    
>     </networkConnector>    
>     <persistence>      
>       <vmPersistence/>    
>     </persistence>   
>   </broker>
> </beans>
> Initial setup is fine, and upon starting both servers they connect and happily message with each other. However, problems arise if one of the servers is restarted or if a network outage occurs.
> If one server (SERVER1, say) is stopped and restarted, reconnection occurs but messages are then received twice by the other server (SERVER2 - the one that was not stopped).  The activeMQ logging I get from SERVER2 on reconnect is:
> 14:56:16,765 channel status changed: Channel: tcp://192.168.1.171:61616 has reconnected
> 14:56:16,890 Adding new client: ID:elephant-3033-1132757775296-0:0_NetworkChannel on transport: TcpTransportChannel: Socket[addr=/192.168.1.172,port=3035,localport=61615]
> but after this all messages are received once on SERVER1 and twice on SERVER2.
> I could just about live with that, but...
> ...if both servers are running but encounter a network outage (ie. I disable then re-enable the network of one machine) I get one of two situations:
> 1) Both servers appear to reconnect, but neither one receives *any* messages any more, or
> 2) The servers reconnect, but upon one server posting to the topic, both are sent into an infinite loop receiving the same message for ever. 
> I've attached an eclipse project with some simple test classes.  Run "Main" on two machines and specify the local host/port and remote host/port as arguments to the Main class.

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