You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by j0llyr0g3r <ti...@wincor-nixdorf.com> on 2007/08/20 11:57:04 UTC

Clustering not working: JMS-Exception

Hey folks,

i am having a hard time trying to find out how clustering works seamlessly
with amq.

Imagine the following situation:

-> One cluster consisting of a master and a slave broker
-> One consumer and one producer
-> Persistence / Clustering mechanism is filesystem-based via shared storage

This means the master broker has the following configuration:

    <transportConnectors>
       <!--<transportConnector  name="stomp" uri="stomp://localhost:61616"
/>-->
       <transportConnector  name="openwire" uri="tcp://localhost:61616" />
    </transportConnectors>

    <persistenceAdapter>
       <journaledJDBC journalLogFiles="5"
dataDirectory="/opt/amq_test/cluster_1/shared_data"/>
    </persistenceAdapter>

The slave has the same configuration:


    <transportConnectors>
       <!--<transportConnector  name="stomp" uri="stomp://localhost:61616"
/>-->
       <transportConnector  name="openwire" uri="tcp://localhost:61616" />
    </transportConnectors>

    <persistenceAdapter>
       <journaledJDBC journalLogFiles="5"
dataDirectory="/opt/amq_test/cluster_1/shared_data"/>
    </persistenceAdapter>

Now if start the master-broker followed by the slave-broker the output of
the slave-broker is:

INFO  faultPersistenceAdapterFactory - Journal is locked... waiting 10
seconds for the journal to be unlocked.
INFO  faultPersistenceAdapterFactory - Journal is locked... waiting 10
seconds for the journal to be unlocked.


So far, so good....

BUT:

If i now start my consumer and producer everything works fine, meaning that
i see the consumer receiving the messages.
Both producer and consumer connect with the following uri:

tcp://debln099:61616?wireFormat=openwire&transport.useAsyncSend=false&tcpNoDelay=true

But if i now stop my master broker via hitting "CTRL + c" my consumer quits
with the message:

JMS Exception occured.  Shutting down client.

And the producer quits with a:

response from futureResponse was invalid
        FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 145
        FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 152
        FILE: activemq/connector/openwire/OpenWireFormatNegotiator.cpp,
LINE: 105
        FILE: activemq/connector/openwire/OpenWireConnector.cpp, LINE: 1468
        FILE: activemq/connector/openwire/OpenWireConnector.cpp, LINE: 928
        FILE: activemq/core/ActiveMQSession.cpp, LINE: 703
        FILE: activemq/core/ActiveMQProducer.cpp, LINE: 194
        FILE: activemq/core/ActiveMQProducer.cpp, LINE: 149
        FILE: activemq/core/ActiveMQProducer.cpp, LINE: 108
-----------------------------------------------------
Finished with the demo ignore errors from this
point on as the sockets breaks when we shutdown.
=====================================================
Segmentation fault


According to the documentation, i would have expected that the slave broker
immediately takes over the database lock.

This doesn't seem to be the case....

What is going wrong here?
-- 
View this message in context: http://www.nabble.com/Clustering-not-working%3A-JMS-Exception-tf4297810s2354.html#a12233062
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Clustering not working: JMS-Exception

Posted by j0llyr0g3r <ti...@wincor-nixdorf.com>.
Ok, 

problem solved....:-)

I thought that AMQ-clusters could be used with only one Uri, meaning one
cluster-node goes down and the other node "hops" in, like when using a
virtual IP with Jboss.

Well, here is how it worked for me:

Master-Broker:

<transportConnectors>
   <transportConnector  name="openwire" uri="tcp://localhost:61613"/>
</transportConnectors>

<persistenceAdapter>
   <journaledJDBC journalLogFiles="5"
dataDirectory="/opt/activemq/cluster_1/shared_data"/>
</persistenceAdapter>


Slave-Broker:

<transportConnectors>
   <transportConnector  name="openwire" uri="tcp://localhost:61616"/>
</transportConnectors>

<persistenceAdapter>
   <journaledJDBC journalLogFiles="5"
dataDirectory="/opt/activemq/cluster_1/shared_data"/>
</persistenceAdapter>

Client-Configuration

failover:(tcp://localhost:61613,tcp://localhost:61616)




j0llyr0g3r wrote:
> 
> Hey folks,
> 
> i am having a hard time trying to find out how clustering works seamlessly
> with amq.
> 
> Imagine the following situation:
> 
> -> One cluster consisting of a master and a slave broker
> -> One consumer and one producer
> -> Persistence / Clustering mechanism is filesystem-based via shared
> storage
> 
> This means the master broker has the following configuration:
> 
>     <transportConnectors>
>        <!--<transportConnector  name="stomp" uri="stomp://localhost:61616"
> />-->
>        <transportConnector  name="openwire" uri="tcp://localhost:61616" />
>     </transportConnectors>
> 
>     <persistenceAdapter>
>        <journaledJDBC journalLogFiles="5"
> dataDirectory="/opt/amq_test/cluster_1/shared_data"/>
>     </persistenceAdapter>
> 
> The slave has the same configuration:
> 
> 
>     <transportConnectors>
>        <!--<transportConnector  name="stomp" uri="stomp://localhost:61616"
> />-->
>        <transportConnector  name="openwire" uri="tcp://localhost:61616" />
>     </transportConnectors>
> 
>     <persistenceAdapter>
>        <journaledJDBC journalLogFiles="5"
> dataDirectory="/opt/amq_test/cluster_1/shared_data"/>
>     </persistenceAdapter>
> 
> Now if start the master-broker followed by the slave-broker the output of
> the slave-broker is:
> 
> INFO  faultPersistenceAdapterFactory - Journal is locked... waiting 10
> seconds for the journal to be unlocked.
> INFO  faultPersistenceAdapterFactory - Journal is locked... waiting 10
> seconds for the journal to be unlocked.
> 
> 
> So far, so good....
> 
> BUT:
> 
> If i now start my consumer and producer everything works fine, meaning
> that i see the consumer receiving the messages.
> Both producer and consumer connect with the following uri:
> 
> tcp://debln099:61616?wireFormat=openwire&transport.useAsyncSend=false&tcpNoDelay=true
> 
> But if i now stop my master broker via hitting "CTRL + c" my consumer
> quits with the message:
> 
> JMS Exception occured.  Shutting down client.
> 
> And the producer quits with a:
> 
> response from futureResponse was invalid
>         FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 145
>         FILE: activemq/transport/ResponseCorrelator.cpp, LINE: 152
>         FILE: activemq/connector/openwire/OpenWireFormatNegotiator.cpp,
> LINE: 105
>         FILE: activemq/connector/openwire/OpenWireConnector.cpp, LINE:
> 1468
>         FILE: activemq/connector/openwire/OpenWireConnector.cpp, LINE: 928
>         FILE: activemq/core/ActiveMQSession.cpp, LINE: 703
>         FILE: activemq/core/ActiveMQProducer.cpp, LINE: 194
>         FILE: activemq/core/ActiveMQProducer.cpp, LINE: 149
>         FILE: activemq/core/ActiveMQProducer.cpp, LINE: 108
> -----------------------------------------------------
> Finished with the demo ignore errors from this
> point on as the sockets breaks when we shutdown.
> =====================================================
> Segmentation fault
> 
> 
> According to the documentation, i would have expected that the slave
> broker immediately takes over the database lock.
> 
> This doesn't seem to be the case....
> 
> What is going wrong here?
> 

-- 
View this message in context: http://www.nabble.com/Clustering-not-working%3A-JMS-Exception-tf4297810s2354.html#a12250674
Sent from the ActiveMQ - User mailing list archive at Nabble.com.