activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ktrue <kt...@inxight.com>
Subject Re: Newbie configuration questions
Date Fri, 24 Nov 2006 08:00:43 GMT

Hi guys,


Adrian Co wrote:
> 
>>> For me, one of the key use of embedding brokers in the client, is 
>>> that clients can continue processing stuff even when the remote 
>>> broker is down. AFAIK, using the failover protocol, will block the 
>>> sending of a message until the client is able reconnect to the 
>>> broker. If you use an embedded broker, messages will be persisted 
>>> automatically, and be sent when the remote broker comes online again, 
>>> and the actual producer need not worry about it. I don't think theres 
>>> not much use for a failover:vm://client as using an embedded broker 
>>> assumes that if a broker goes down, the client in essence is also down.
> 

Adrian, I wanted to share with you the previous "network of brokers"
configuration that was used in our product that didn't seem to implement
failover as expected. 

Previously the server defined a broker thusly:

    <beans xmlns="http://activemq.org/config/1.0">
        <broker brokerName="adminserver" useJmx="false"
useShutdownHook="false">
            <transportConnectors>
                <transportConnector name="default"
uri="tcp://localhost:61616"/>
            </transportConnectors>
            <networkConnectors>
                <networkConnector name="default"
uri="static:tcp://localhost:61616"/>
            </networkConnectors>
        </broker>
    </beans>

The previous configuration of the clients included an embedded broker as
well:

    <bean id="jmsBroker"
      class="org.apache.activemq.broker.BrokerService"
      init-method="start"
      destroy-method="stop">
        <property name="brokerName" value="cruncheragent"/>
        <property name="useJmx" value="false"/>
        <property name="useShutdownHook" value="false"/>
        <property name="networkConnectorURIs">
            <list>
                <value>static:(failover:(tcp://localhost:61616))</value>
            </list>
        </property>
    </bean> 

    <bean id="jmsConnectionFactory"
      class="org.apache.activemq.pool.PooledConnectionFactory"
      init-method="start"
      destroy-method="stop">
        <property name="connectionFactory">
            <bean class="org.apache.activemq.ActiveMQConnectionFactory">
                <property name="brokerURL" value="vm://cruncheragent"/>
            </bean>
        </property>
    </bean> 

However, what happened when I stopped the server (broker "adminserver"), I
get this message in the client:

    2006-11-17 16:20:41,588 WARN
[org.apache.activemq.network.DemandForwardingBridge] - Unexpected 
                                                          remote command:
ShutdownInfo {commandId = 52, responseRequired = false}
    2006-11-17 16:20:41,590 WARN
[org.apache.activemq.network.DemandForwardingBridge] - Outbound 
                                                          transport to
adminserver interrupted ...

However, once I start the server, I never see any further messages about the
matter and the clients don't appear to reconnect (i.e. I never see messages
on the server from the clients again). HOWEVER, if I don't use an embedded
broker on the client and use failover:tcp://localhost:61616, the messages
are sent to the server when it is once again available.

In short, it seems like sticking an embedded broker in between the
ConnectionFactory and the server seems to break failover.

Additionally, you asked:

    Could be if you are connecting to other JMS brokers aside from AMQ, but
if you are networking
    ActiveMQ brokers only, I don't think so.

Just to rule that out, no, I'm only connecting to ActiveMQ servers.

Adrian and Gabriel: thanks for your input and help so far.

Thanks!
Kirk
-- 
View this message in context: http://www.nabble.com/Newbie-configuration-questions-tf2681720.html#a7519069
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message