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:[EMAIL PROTECTED] > 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. > > > > >