activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bernhard Wellhöfer <Bernhard.Wellhoe...@gaia-group.com>
Subject AW: Network of brokers
Date Thu, 21 Dec 2006 07:47:07 GMT
Hello Prashanth,

I agree that the clustering/network or brokers feature is not ready for a productive scenario.
The problem is that the ActiveMQ homepage does not warn you about this case. Therefore again
and again people waste time by trying out this feature - as each new mail for this issue to
the mailing list proves. It's a pity that this as a whole makes ActiveMQ less trustworthy...

Regards,

Bernhard
 

> -----Ursprüngliche Nachricht-----
> Von: Anthrope [mailto:pn@anthrope.com] 
> Gesendet: Donnerstag, 21. Dezember 2006 01:47
> An: activemq-users@geronimo.apache.org
> Betreff: Re: Network of brokers
> 
> 
> Bernard,
> 
>       I agree with you on this. I've posted detailed 
> questions on clustering/networks or brokers and have met 
> deafening silence. The folks on this list are very helpful 
> and willing to share, so I'll hazard a guess that the 
> clustering/network or brokers feature is simply not ready. 
> I've tried a ton of different configurations, and none of 
> them work the way they're supposed to. The documentation 
> describes a broker cluster as a logical group of clusters, 
> but the behaviour I see is anything but that. For instance, I 
> can set things up so that I've got two brokers who know about 
> each other (via their respective netWorkConnector 
> specifications), but cannot have a producer produce data on 
> one broker and a consumer consume data from the other!
> 
> What I have been able to get done is a Master-Slave 
> configuration using MySQL. But that is painfully slow, 
> especially if you're dealing with large messages. What I will 
> do is post my configuration files when I have tweaked and 
> tuned them to the point that they can work in a production 
> environment.
> Hopefully others will find them useful, even if only as a 
> starting point.
> 
> Regards,
> Prashanth
> 
> 
> Bernhard2 wrote:
> > 
> > Hello,
> > 
> > I experienced the same problem in my tests.
> > 
> > Who can help Sanne and me here? I'm subscribed to this mailing list 
> > for some time now. As soon when it comes to help for topics around 
> > "network of brokers", I noticed that normally nobody is able (or 
> > wants?) to help. Is a "network of brokers" an uncommon used 
> feature? 
> > Regarding to the number of mails for this topic I do not think so.
> > 
> > Thanks and have a nice day,
> > 
> > Bernhard
> > 
> > 
> > 
> > sanne wrote:
> >> 
> >> Hi,
> >> 
> >> I'm prototyping an ActiveMQ network of brokers using 4.0.2 
> RC 6. The 
> >> setup consists of 2 producers and 2 consumers. At startup 
> things look 
> >> fine. After restarting one of the consumers one or more times it 
> >> stops receiving messages. All the work is done by the 
> remaining cosumer.
> >> 
> >> The connection dialog of the restarted broker looks o.k., but it 
> >> doesn't receive messages anymore.
> >> (I don't use JmsTemplate) :
> >> 
> >> <code>
> >> 2006-10-31 17:12:53,156 DEBUG [ActiveMQ Task]
> >> org.apache.activemq.transport.failover.FailoverTransport: 
> Attempting 
> >> connect to: tcp://localhost:20002
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Task]
> >> org.apache.activemq.transport.WireFormatNegotiator: Sending:
> >> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
> >> TcpNoDelayEnabled=true, SizePrefixDisabled=false, 
> >> StackTraceEnabled=true, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Task]
> >> org.apache.activemq.transport.failover.FailoverTransport: 
> Connection 
> >> established
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport Server:
> >> tcp://dtams0365:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator: Sending:
> >> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
> >> TcpNoDelayEnabled=true, SizePrefixDisabled=false, 
> >> StackTraceEnabled=true, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> Received WireFormat:
> >> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
> >> TightEncodingEnabled=true, TcpNoDelayEnabled=true, 
> >> SizePrefixDisabled=false, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1411]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> Received WireFormat:
> >> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
> >> TightEncodingEnabled=true, TcpNoDelayEnabled=true, 
> >> SizePrefixDisabled=false, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator:
> >> tcp://localhost/127.0.0.1:20002 before negotiation:
> >> OpenWireFormat{version=1, cacheEnabled=false, 
> >> stackTraceEnabled=false, tightEncodingEnabled=false, 
> >> sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1411]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1411 before negotiation: 
> OpenWireFormat{version=1, 
> >> cacheEnabled=false, stackTraceEnabled=false, 
> >> tightEncodingEnabled=false, sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator:
> >> tcp://localhost/127.0.0.1:20002 after negotiation:
> >> OpenWireFormat{version=1, cacheEnabled=true, 
> stackTraceEnabled=true, 
> >> tightEncodingEnabled=true, sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,171 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1411]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1411 after negotiation: OpenWireFormat{version=1, 
> >> cacheEnabled=true, stackTraceEnabled=true, 
> tightEncodingEnabled=true, 
> >> sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport Server:
> >> tcp://dtams0365:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator: Sending:
> >> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
> >> TcpNoDelayEnabled=true, SizePrefixDisabled=false, 
> >> StackTraceEnabled=true, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1406]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> Received WireFormat:
> >> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
> >> TightEncodingEnabled=true, TcpNoDelayEnabled=true, 
> >> SizePrefixDisabled=false, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1406]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1406 before negotiation: 
> OpenWireFormat{version=1, 
> >> cacheEnabled=false, stackTraceEnabled=false, 
> >> tightEncodingEnabled=false, sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,218 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1406]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1406 after negotiation: OpenWireFormat{version=1, 
> >> cacheEnabled=true, stackTraceEnabled=true, 
> tightEncodingEnabled=true, 
> >> sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport Server:
> >> tcp://dtams0365:20002]
> >> org.apache.activemq.transport.WireFormatNegotiator: Sending:
> >> WireFormatInfo { version=1, properties={TightEncodingEnabled=true,
> >> TcpNoDelayEnabled=true, SizePrefixDisabled=false, 
> >> StackTraceEnabled=true, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1407]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> Received WireFormat:
> >> WireFormatInfo { version=1, properties={StackTraceEnabled=true,
> >> TightEncodingEnabled=true, TcpNoDelayEnabled=true, 
> >> SizePrefixDisabled=false, MaxInactivityDuration=30000, 
> >> CacheEnabled=true}, magic=[A,c,t,i,v,e,M,Q]}
> >> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1407]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1407 before negotiation: 
> OpenWireFormat{version=1, 
> >> cacheEnabled=false, stackTraceEnabled=false, 
> >> tightEncodingEnabled=false, sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,234 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1407]
> >> org.apache.activemq.transport.WireFormatNegotiator: 
> >> tcp:///127.0.0.1:1407 after negotiation: OpenWireFormat{version=1, 
> >> cacheEnabled=true, stackTraceEnabled=true, 
> tightEncodingEnabled=true, 
> >> sizePrefixDisabled=false}
> >> 2006-10-31 17:12:53,234 DEBUG [Thread-3]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> topic://ActiveMQ.Advisory.Topic
> >> 2006-10-31 17:12:53,234 INFO  [Thread-4]
> >> org.apache.activemq.network.DemandForwardingBridge: Network 
> >> connection between vm://consumer-002#2 and 
> >> tcp://localhost:10002(producer-002) has been established.
> >> 2006-10-31 17:12:53,234 INFO  [Thread-3]
> >> org.apache.activemq.network.DemandForwardingBridge: Network 
> >> connection between vm://consumer-002#0 and 
> >> tcp://localhost:10001(producer-001) has been established.
> >> 2006-10-31 17:12:53,234 DEBUG [main]
> >> org.apache.activemq.transport.failover.FailoverTransport: Started.
> >> 2006-10-31 17:12:53,265 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1407]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> queue://jmsExample
> >> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:10002]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> queue://jmsExample
> >> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:10001]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> queue://jmsExample
> >> 2006-10-31 17:12:53,281 DEBUG [ActiveMQ Transport: 
> >> tcp:///127.0.0.1:1407]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> topic://ActiveMQ.Advisory.Queue
> >> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:10002]
> >> org.apache.activemq.broker.region.AbstractRegion: Adding 
> destination:
> >> topic://ActiveMQ.Advisory.Consumer.Queue.jmsExample
> >> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:10002]
> >> org.apache.activemq.network.DemandForwardingBridge: 
> Forwarding sub on
> >> vm://consumer-002#2 from producer-002 :  ConsumerInfo 
> {commandId = 3, 
> >> responseRequired = false, consumerId = 
> >> ID:dtams0365-1365-1162311147296-3:1:1:1, destination = 
> >> queue://jmsExample, prefetchSize = 1000, 
> maximumPendingMessageLimit = 
> >> 0, browser = false, dispatchAsync = true, selector = null, 
> >> subcriptionName = null, noLocal = false, exclusive = false, 
> >> retroactive = false, priority = 0, brokerPath = 
> >> [ID:dtams0365-1371-1162311149155-0:0,
> >> ID:dtams0365-1365-1162311147296-0:0], optimizedAcknowledge 
> = false, 
> >> noRangeAcks = false, additionalPredicate = null}
> >> 2006-10-31 17:12:53,296 DEBUG [ActiveMQ Transport:
> >> tcp://localhost/127.0.0.1:10001]
> >> org.apache.activemq.network.DemandForwardingBridge: 
> Forwarding sub on 
> >> vm://consumer-002#0 from producer-001 :  ConsumerInfo 
> {commandId = 3, 
> >> responseRequired = false, consumerId = 
> >> ID:dtams0365-1356-1162311143827-3:1:1:1, destination = 
> >> queue://jmsExample, prefetchSize = 1000, 
> maximumPendingMessageLimit = 
> >> 0, browser = false, dispatchAsync = true, selector = null, 
> >> subcriptionName = null, noLocal = false, exclusive = false, 
> >> retroactive = false, priority = 0, brokerPath = 
> >> [ID:dtams0365-1371-1162311149155-0:0,
> >> ID:dtams0365-1356-1162311143827-0:0], optimizedAcknowledge 
> = false, 
> >> noRangeAcks = false, additionalPredicate = null} </code>
> >> 
> >> 
> >> The configuration of the brokers is:
> >> 
> >> <code>
> >>   <broker brokerName="consumer-001" persistent="false" 
> >> useJmx="false">
> >>     
> >>     <transportConnectors>
> >>       <transportConnector uri="tcp://localhost:20001"/>
> >>     </transportConnectors>
> >> 
> >>     <networkConnectors>
> >>       <networkConnector networkTTL="3" name="to-producer-001" 
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:10001)" failover="true"/>
> >>       <networkConnector networkTTL="3" name="to-producer-002" 
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:10002)" failover="true"/>
> >>      </networkConnectors>
> >> 
> >>     <persistenceAdapter>
> >>       <memoryPersistenceAdapter/>
> >>     </persistenceAdapter>
> >>     
> >>   </broker>
> >> 
> >>   <broker brokerName="consumer-002" persistent="false" 
> >> useJmx="false">
> >>     
> >>     <transportConnectors>
> >>       <transportConnector uri="tcp://localhost:20002"/>
> >>     </transportConnectors>
> >>   <broker brokerName="producer-001" persistent="false" 
> >> useJmx="false">
> >>     
> >>     <transportConnectors>
> >>       <transportConnector uri="tcp://localhost:10001"/>
> >>     </transportConnectors>
> >> 
> >>     <networkConnectors>
> >>       <networkConnector networkTTL="3" name="to-consumer-001"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20001)" failover="true"/>
> >>       <networkConnector networkTTL="3" name="to-consumer-002"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20002)" failover="true"/>
> >>     </networkConnectors>
> >>     
> >>     <persistenceAdapter>
> >>       <memoryPersistenceAdapter/>
> >>     </persistenceAdapter>
> >>     
> >>   </broker>
> >> 
> >>   <broker brokerName="producer-001" persistent="false" 
> >> useJmx="false">
> >>     
> >>     <transportConnectors>
> >>       <transportConnector uri="tcp://localhost:10001"/>
> >>     </transportConnectors>
> >> 
> >>     <networkConnectors>
> >>       <networkConnector networkTTL="3" name="to-consumer-001"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20001)" failover="true"/>
> >>       <networkConnector networkTTL="3" name="to-consumer-002"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20002)" failover="true"/>
> >>     </networkConnectors>
> >>     
> >>     <persistenceAdapter>
> >>       <memoryPersistenceAdapter/>
> >>     </persistenceAdapter>
> >>     
> >>   </broker>
> >> 
> >>   <broker brokerName="producer-002" persistent="false" 
> >> useJmx="false">
> >>     
> >>     <transportConnectors>
> >>       <transportConnector uri="tcp://localhost:10002"/>
> >>     </transportConnectors>
> >> 
> >>     <networkConnectors>
> >>       <networkConnector name="to-consumer-001"  networkTTL="3"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20001)" failover="true"/>
> >>       <networkConnector name="to-consumer-002"  networkTTL="3"
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:20002)" failover="true"/>
> >>     </networkConnectors>
> >> 
> >>     <persistenceAdapter>
> >>       <memoryPersistenceAdapter/>
> >>     </persistenceAdapter>
> >>     
> >>   </broker>
> >>     <networkConnectors>
> >>       <networkConnector  networkTTL="3" name="to-producer-001" 
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:10001)" failover="true"/>
> >>       <networkConnector  networkTTL="3" name="to-producer-002" 
> >> dynamicOnly="true" conduitSubscriptions="true"
> >> uri="static:(tcp://localhost:10002)" failover="true"/>
> >>      </networkConnectors>
> >> 
> >>     <persistenceAdapter>
> >>       <memoryPersistenceAdapter/>
> >>     </persistenceAdapter>
> >>     
> >>   </broker>
> >> </code>
> >> 
> >> 
> >> Has anyone experienced this before, and maybe solved it?
> >> 
> >> Regards,
> >> 
> >> Sanne
> >> 
> >> 
> >> 
> > 
> > 
> 
> --
> View this message in context: 
> http://www.nabble.com/Network-of-brokers-tf2546736.html#a8000961
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> 
> 
> 
> 
> 

Mime
View raw message