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 Wed, 25 Oct 2006 23:21:41 GMT
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 <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.PropertyPlacehold

>>>>>> erConfi
>>>>>> 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.PropertyPlacehold

>>>>>> erConfi
>>>>>> 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.

>>>>>> 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,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