Re: Having some trouble making a simple network...
While waiting for bi-directional network connections... is there anything I can do do get this working? So that the master broker does not need to have explicit knowledge of all slave brokers? I can open a port on the slaves... though I don't like that, but as a short- term fix until bi-directional network connections are working I am willing to do it. Maybe multicast from the master broker to slaves? --jason On Oct 16, 2006, at 3:45 AM, Rob Davies wrote: It'll take a week - or so - simply because I've a lot of other stuff to do. It's not a major piece of work - but there's some fiddly things to change in the broker to support it - so we've just got to be careful not to break anything else. On 16 Oct 2006, at 08:11, Jason Dillon wrote: Any idea how easy this is going to be to implement? Should it be fairly simple, or a major design change? --jason On Oct 15, 2006, at 11:38 PM, Rob Davies wrote: Hi Jason, I just created a jira for this: http://issues.apache.org/activemq/ browse/AMQ-979 On 16 Oct 2006, at 05:40, Jason Dillon wrote: How then do I setup a hub/spoke network where the hub does not know about all of the spokes, and where the spokes may be behind firewalls, only allowing outgoing connections? I had thought that having the remote broker define a network connection to the central broker would have been enough to connect them or bi- directional message flow. But it sounds like that is not the case based on what you've said. How should I configure the brokers assuming that the remote brokers maybe behind a firewall then? --jason On Oct 15, 2006, at 9:30 PM, Hiram Chirino wrote: Hey Jason, Not sure what those errors are about, but first off... if network connections are only defined from the remote brokers to the central broker, then only messages can sent to the central broker. The central broker will not be able to send message back to the remote broker. Regards, Hiram On 10/15/06, Jason Dillon <[EMAIL PROTECTED]> wrote: Hiya... I'm having some trouble making a simple broker network for GBuild. The idea was to embed a broker in each node, and then have the slave nodes connect to the master node, so that all client code will always be connected, and let activemq handle broker to broker connectivity. But, I can not seems to get it to work. NOTE: This is not master/slave in terms of broker fail-over... its just hub/spoke where the hub is the master and slave a spoke... just for clarity on the bits below. My central manager (which is what slave nodes connect to) has: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlacehold erConfi gurer"/> And my slave nodes have: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlacehold erConfi gurer"/> failover="true"/> But... for some reason this is not working... and I don't know why. Connectivity is good, as when I change the slave client's to connect with "tcp://gbuild.org:16161" instead of "vm://localhost" everything works fine. But when the slaves use "vm://localhost" then they never see any messages, and the master node complains with "No subscriptions registered, will not dispatch message at this time" when new messages are queued... though when the slave starts I do see it connecting to gbuild.org:16161 and I see the master node create a consumer for the client (and remove it when I stop the slave). Not sure if this matters, but I also see these logs on the master node: 19:54:45,283 DEBUG [Service] Async error occurred: java.lang.NullPointerException java.lang.NullPointerException at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap. hash (ConcurrentHashMap.java:154) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap. get (ConcurrentHashMap.java:759) at org.apache.activemq.broker.AbstractConnection.processAddConnectio n (AbstractConnection.java:616) at org.apache.activemq.broker.jmx.ManagedTransportConnection.process AddConn ection(ManagedTransportConnection.java:87) at org.apache.activemq.command.ConnectionInfo.visit (ConnectionInfo.java:121) at org.apache.activemq.broker.AbstractConnection.service (AbstractConnection.java:238) at org.apache.activemq.broker.TransportConnection $1.onCommand (TransportConnection.java:63) at org.apache.activemq.transport.ResponseCorrelator.onCommand (ResponseCorrelator.java:95) at org.apache.activemq.transport.TransportFilter.onCommand (TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegot
Re: Having some trouble making a simple network...
Any progress on this? --jason On Oct 16, 2006, at 3:45 AM, Rob Davies wrote: It'll take a week - or so - simply because I've a lot of other stuff to do. It's not a major piece of work - but there's some fiddly things to change in the broker to support it - so we've just got to be careful not to break anything else. On 16 Oct 2006, at 08:11, Jason Dillon wrote: Any idea how easy this is going to be to implement? Should it be fairly simple, or a major design change? --jason On Oct 15, 2006, at 11:38 PM, Rob Davies wrote: Hi Jason, I just created a jira for this: http://issues.apache.org/activemq/ browse/AMQ-979 On 16 Oct 2006, at 05:40, Jason Dillon wrote: How then do I setup a hub/spoke network where the hub does not know about all of the spokes, and where the spokes may be behind firewalls, only allowing outgoing connections? I had thought that having the remote broker define a network connection to the central broker would have been enough to connect them or bi- directional message flow. But it sounds like that is not the case based on what you've said. How should I configure the brokers assuming that the remote brokers maybe behind a firewall then? --jason On Oct 15, 2006, at 9:30 PM, Hiram Chirino wrote: Hey Jason, Not sure what those errors are about, but first off... if network connections are only defined from the remote brokers to the central broker, then only messages can sent to the central broker. The central broker will not be able to send message back to the remote broker. Regards, Hiram On 10/15/06, Jason Dillon <[EMAIL PROTECTED]> wrote: Hiya... I'm having some trouble making a simple broker network for GBuild. The idea was to embed a broker in each node, and then have the slave nodes connect to the master node, so that all client code will always be connected, and let activemq handle broker to broker connectivity. But, I can not seems to get it to work. NOTE: This is not master/slave in terms of broker fail-over... its just hub/spoke where the hub is the master and slave a spoke... just for clarity on the bits below. My central manager (which is what slave nodes connect to) has: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlacehold erConfi gurer"/> And my slave nodes have: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlacehold erConfi gurer"/> failover="true"/> But... for some reason this is not working... and I don't know why. Connectivity is good, as when I change the slave client's to connect with "tcp://gbuild.org:16161" instead of "vm://localhost" everything works fine. But when the slaves use "vm://localhost" then they never see any messages, and the master node complains with "No subscriptions registered, will not dispatch message at this time" when new messages are queued... though when the slave starts I do see it connecting to gbuild.org:16161 and I see the master node create a consumer for the client (and remove it when I stop the slave). Not sure if this matters, but I also see these logs on the master node: 19:54:45,283 DEBUG [Service] Async error occurred: java.lang.NullPointerException java.lang.NullPointerException at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap. hash (ConcurrentHashMap.java:154) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap. get (ConcurrentHashMap.java:759) at org.apache.activemq.broker.AbstractConnection.processAddConnectio n (AbstractConnection.java:616) at org.apache.activemq.broker.jmx.ManagedTransportConnection.process AddConn ection(ManagedTransportConnection.java:87) at org.apache.activemq.command.ConnectionInfo.visit (ConnectionInfo.java:121) at org.apache.activemq.broker.AbstractConnection.service (AbstractConnection.java:238) at org.apache.activemq.broker.TransportConnection $1.onCommand (TransportConnection.java:63) at org.apache.activemq.transport.ResponseCorrelator.onCommand (ResponseCorrelator.java:95) at org.apache.activemq.transport.TransportFilter.onCommand (TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand (WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand (InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume (TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:136) at java.lang.Thread.run(Thread.java:595) 19:54:45,
Re: Having some trouble making a simple network...
How then do I setup a hub/spoke network where the hub does not know about all of the spokes, and where the spokes may be behind firewalls, only allowing outgoing connections? I had thought that having the remote broker define a network connection to the central broker would have been enough to connect them or bi-directional message flow. But it sounds like that is not the case based on what you've said. How should I configure the brokers assuming that the remote brokers maybe behind a firewall then? --jason On Oct 15, 2006, at 9:30 PM, Hiram Chirino wrote: Hey Jason, Not sure what those errors are about, but first off... if network connections are only defined from the remote brokers to the central broker, then only messages can sent to the central broker. The central broker will not be able to send message back to the remote broker. Regards, Hiram On 10/15/06, Jason Dillon <[EMAIL PROTECTED]> wrote: Hiya... I'm having some trouble making a simple broker network for GBuild. The idea was to embed a broker in each node, and then have the slave nodes connect to the master node, so that all client code will always be connected, and let activemq handle broker to broker connectivity. But, I can not seems to get it to work. NOTE: This is not master/slave in terms of broker fail-over... its just hub/spoke where the hub is the master and slave a spoke... just for clarity on the bits below. My central manager (which is what slave nodes connect to) has: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlaceholderCo nfi gurer"/> And my slave nodes have: http://activemq.org/config/1.0";> class="org.springframework.beans.factory.config.PropertyPlaceholderCo nfi gurer"/> But... for some reason this is not working... and I don't know why. Connectivity is good, as when I change the slave client's to connect with "tcp://gbuild.org:16161" instead of "vm://localhost" everything works fine. But when the slaves use "vm://localhost" then they never see any messages, and the master node complains with "No subscriptions registered, will not dispatch message at this time" when new messages are queued... though when the slave starts I do see it connecting to gbuild.org:16161 and I see the master node create a consumer for the client (and remove it when I stop the slave). Not sure if this matters, but I also see these logs on the master node: 19:54:45,283 DEBUG [Service] Async error occurred: java.lang.NullPointerException java.lang.NullPointerException at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.hash (ConcurrentHashMap.java:154) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.get (ConcurrentHashMap.java:759) at org.apache.activemq.broker.AbstractConnection.processAddConnection (AbstractConnection.java:616) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddC onn ection(ManagedTransportConnection.java:87) at org.apache.activemq.command.ConnectionInfo.visit (ConnectionInfo.java:121) at org.apache.activemq.broker.AbstractConnection.service (AbstractConnection.java:238) at org.apache.activemq.broker.TransportConnection $1.onCommand (TransportConnection.java:63) at org.apache.activemq.transport.ResponseCorrelator.onCommand (ResponseCorrelator.java:95) at org.apache.activemq.transport.TransportFilter.onCommand (TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand (WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand (InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume (TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:136) at java.lang.Thread.run(Thread.java:595) 19:54:45,284 DEBUG [Transport] Transport failed: java.io.IOException: Unknown data type: 68 java.io.IOException: Unknown data type: 68 at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal (OpenWireFormat.java:344) at org.apache.activemq.openwire.OpenWireFormat.unmarshal (OpenWireFormat.java:275) at org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:135) at java.lang.Thread.run(Thread.java:595) I'm using the latest 4.1-incubator-SNAPSHOT in m2: org.apache.activemq activeio-core 3.0-SNAPSHOT org.apache.activemq activemq-core 4.1-incubator-SNAPSHOT * * * I really want to get this broker network working so that the client code can be free from reconnect flu
Re: Having some trouble making a simple network...
Hey Jason, Not sure what those errors are about, but first off... if network connections are only defined from the remote brokers to the central broker, then only messages can sent to the central broker. The central broker will not be able to send message back to the remote broker. Regards, Hiram On 10/15/06, Jason Dillon <[EMAIL PROTECTED]> wrote: Hiya... I'm having some trouble making a simple broker network for GBuild. The idea was to embed a broker in each node, and then have the slave nodes connect to the master node, so that all client code will always be connected, and let activemq handle broker to broker connectivity. But, I can not seems to get it to work. NOTE: This is not master/slave in terms of broker fail-over... its just hub/spoke where the hub is the master and slave a spoke... just for clarity on the bits below. My central manager (which is what slave nodes connect to) has: http://activemq.org/config/1.0";> And my slave nodes have: http://activemq.org/config/1.0";> But... for some reason this is not working... and I don't know why. Connectivity is good, as when I change the slave client's to connect with "tcp://gbuild.org:16161" instead of "vm://localhost" everything works fine. But when the slaves use "vm://localhost" then they never see any messages, and the master node complains with "No subscriptions registered, will not dispatch message at this time" when new messages are queued... though when the slave starts I do see it connecting to gbuild.org:16161 and I see the master node create a consumer for the client (and remove it when I stop the slave). Not sure if this matters, but I also see these logs on the master node: 19:54:45,283 DEBUG [Service] Async error occurred: java.lang.NullPointerException java.lang.NullPointerException at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.hash (ConcurrentHashMap.java:154) at edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.get (ConcurrentHashMap.java:759) at org.apache.activemq.broker.AbstractConnection.processAddConnection (AbstractConnection.java:616) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConn ection(ManagedTransportConnection.java:87) at org.apache.activemq.command.ConnectionInfo.visit (ConnectionInfo.java:121) at org.apache.activemq.broker.AbstractConnection.service (AbstractConnection.java:238) at org.apache.activemq.broker.TransportConnection$1.onCommand (TransportConnection.java:63) at org.apache.activemq.transport.ResponseCorrelator.onCommand (ResponseCorrelator.java:95) at org.apache.activemq.transport.TransportFilter.onCommand (TransportFilter.java:65) at org.apache.activemq.transport.WireFormatNegotiator.onCommand (WireFormatNegotiator.java:133) at org.apache.activemq.transport.InactivityMonitor.onCommand (InactivityMonitor.java:122) at org.apache.activemq.transport.TransportSupport.doConsume (TransportSupport.java:84) at org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:136) at java.lang.Thread.run(Thread.java:595) 19:54:45,284 DEBUG [Transport] Transport failed: java.io.IOException: Unknown data type: 68 java.io.IOException: Unknown data type: 68 at org.apache.activemq.openwire.OpenWireFormat.doUnmarshal (OpenWireFormat.java:344) at org.apache.activemq.openwire.OpenWireFormat.unmarshal (OpenWireFormat.java:275) at org.apache.activemq.transport.tcp.TcpTransport.run (TcpTransport.java:135) at java.lang.Thread.run(Thread.java:595) I'm using the latest 4.1-incubator-SNAPSHOT in m2: org.apache.activemq activeio-core 3.0-SNAPSHOT org.apache.activemq activemq-core 4.1-incubator-SNAPSHOT * * * I really want to get this broker network working so that the client code can be free from reconnect fluff... and just assume that the local embedded broker will handle all inter-broker connectivity issues. Anyone have any idea what's wrong? Thanks, --jason -- Regards, Hiram Blog: http://hiramchirino.com
