activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Dillon <ja...@planet57.com>
Subject Re: Having some trouble making a simple network...
Date Mon, 16 Oct 2006 07:11:21 GMT
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 <jason@planet57.com> 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:
>>>>
>>>> <beans xmlns="http://activemq.org/config/1.0">
>>>>      <bean
>>>> class="org.springframework.beans.factory.config.PropertyPlaceholder 
>>>> Confi
>>>> gurer"/>
>>>>      <broker useJmx="true">
>>>>          <managementContext>
>>>>              <managementContext connectorPort="5003"
>>>> jmxDomainName="org.apache.activemq"/>
>>>>          </managementContext>
>>>>          <persistenceAdapter>
>>>>              <journaledJDBC journalLogFiles="5" dataDirectory="$
>>>> {gshell.home}/activemq"/>
>>>>          </persistenceAdapter>
>>>>          <transportConnectors>
>>>>              <transportConnector uri="vm://localhost"/>
>>>>              <transportConnector uri="tcp://localhost:16161"/>
>>>>          </transportConnectors>
>>>>      </broker>
>>>> </beans>
>>>>
>>>> And my slave nodes have:
>>>>
>>>> <beans xmlns="http://activemq.org/config/1.0">
>>>>      <bean
>>>> class="org.springframework.beans.factory.config.PropertyPlaceholder 
>>>> Confi
>>>> gurer"/>
>>>>      <broker useJmx="true">
>>>>          <managementContext>
>>>>              <managementContext connectorPort="5004"
>>>> jmxDomainName="org.apache.activemq"/>
>>>>          </managementContext>
>>>>          <persistenceAdapter>
>>>>              <journaledJDBC journalLogFiles="5" dataDirectory="$
>>>> {gshell.home}/activemq"/>
>>>>          </persistenceAdapter>
>>>>          <transportConnectors>
>>>>              <transportConnector uri="vm://localhost"/>
>>>>          </transportConnectors>
>>>>          <networkConnectors>
>>>>              <networkConnector uri="static:(tcp://gbuild.org: 
>>>> 16161)"
>>>> failover="true"/>
>>>>          </networkConnectors>
>>>>      </broker>
>>>> </beans>
>>>>
>>>> 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:
>>>>
>>>> <snip>
>>>> 19:54:45,283 DEBUG [Service] Async error occurred:
>>>> java.lang.NullPointerException
>>>> java.lang.NullPointerException
>>>>          at
>>>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.ha 
>>>> sh
>>>> (ConcurrentHashMap.java:154)
>>>>          at
>>>> edu.emory.mathcs.backport.java.util.concurrent.ConcurrentHashMap.ge 
>>>> t
>>>> (ConcurrentHashMap.java:759)
>>>>          at
>>>> org.apache.activemq.broker.AbstractConnection.processAddConnection
>>>> (AbstractConnection.java:616)
>>>>          at
>>>> org.apache.activemq.broker.jmx.ManagedTransportConnection.processAd 
>>>> dConn
>>>> 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)
>>>> </snip>
>>>>
>>>> I'm using the latest 4.1-incubator-SNAPSHOT in m2:
>>>>
>>>> <dependency>
>>>>      <groupId>org.apache.activemq</groupId>
>>>>      <artifactId>activeio-core</artifactId>
>>>>      <version>3.0-SNAPSHOT</version>
>>>> </dependency>
>>>>
>>>> <dependency>
>>>>      <groupId>org.apache.activemq</groupId>
>>>>      <artifactId>activemq-core</artifactId>
>>>>      <version>4.1-incubator-SNAPSHOT</version>
>>>> </dependency>
>>>>
>>>>   * * *
>>>>
>>>> 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
>>
>


Mime
View raw message