activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From AlB <Brei...@avaya.com>
Subject Re: QueueBrowser with Network of Brokers
Date Thu, 14 Jun 2007 21:09:43 GMT

I have a network of 3 brokers using 4.0.1 where the maximum hop is 1 (a star
configuration, a-b-c, where messages travel from a to b or b to c via the
same queue.) Messages are not transacted by either the publishers or the
consumer.

I see this error frequently. Sometimes the error will happen at startup, or
during the transmition of thousands of messages, or when a message hasn't
gone through in hours (and tens of thousands were earlier successfully
transmitted). Once it happens, subsequent messages remain on the queue on
the broker where the publisher is local (as seen by hermes). 

I have not been able to determine a specific action that causes this to
happen.

The only thing that seems to make the system work is to restart the brokers
on all three machines. However, the error usually reoccurs within 0-12
hours.

Are there configuration options that can be used to avoid this error?

Here are the network specs:

system B:
    <networkConnector conduitSubscriptions="false" dynamicOnly="false"
failover="true" name="pickling" networkTTL="3"
uri="static:(ssl://192.168.131.64:61817)"/>
<networkConnector conduitSubscriptions="false" dynamicOnly="false"
failover="true" name="pez" networkTTL="3"
uri="static:(ssl://192.168.86.155:61817)"/>
</networkConnectors>

System A/C:
    <networkConnector conduitSubscriptions="false" dynamicOnly="false"
failover="true" name="jolt" networkTTL="3"
uri="static:(ssl://192.168.86.156:61817)"/>


davem wrote:
> 
> Here is the stack trace:
> 
> java.lang.NullPointerException
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport.configureMessage(DemandForwardingBridgeSupport.java:465)
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport.serviceLocalCommand(DemandForwardingBridgeSupport.java:486)
>         at
> org.apache.activemq.network.DemandForwardingBridgeSupport$1.onCommand(DemandForwardingBridgeSupport.java:121)
>         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.vm.VMTransport.syncOneWay(VMTransport.java:96)
>         at
> org.apache.activemq.transport.vm.VMTransport.oneWay(VMTransport.java:83)
>         at
> org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:43)
>         at
> org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:60)
>         at
> org.apache.activemq.broker.TransportConnection.dispatch(TransportConnection.java:105)
>         at
> org.apache.activemq.broker.TransportConnection.processDispatch(TransportConnection.java:772)
>         at
> org.apache.activemq.broker.TransportConnection.iterate(TransportConnection.java:788)
>         at
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:111)
>         at
> org.apache.activemq.thread.PooledTaskRunner.access$100(PooledTaskRunner.java:26)
>         at
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:44)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
>         at
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
>         at java.lang.Thread.run(Thread.java:595)
> 
> The "receiver" application has a broker:
>   <broker brokerName="receiver" persistent="false" useJmx="false">
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:7002"/>
>     </transportConnectors>
> 
>     <networkConnectors>
>       <networkConnector uri="static:(tcp://localhost:7001)"
> failover="true"/>
>     </networkConnectors>
> 
>     <persistenceAdapter>
>       <memoryPersistenceAdapter/>
>     </persistenceAdapter>
>   </broker>
> 
> The "sender" application has a broker:
>   <broker brokerName="sender" persistent="false" useJmx="false">
>     <transportConnectors>
>       <transportConnector uri="tcp://localhost:7001"/>
>     </transportConnectors>
> 
>     <networkConnectors>
>       <networkConnector uri="static:(tcp://localhost:7002)"
> failover="true"/>
>     </networkConnectors>
> 
>     <persistenceAdapter>
>       <memoryPersistenceAdapter/>
>     </persistenceAdapter>
>   </broker>
> 
> A third "browser" application uses a connection factory with a url like
> "tcp://localhost:7002".  If the browser connects to the "receiver"
> application and creates a QueueBrowser, then that exception is thrown in
> the "sender" application.
> 
> 
> James.Strachan wrote:
>> 
>> On 3/6/07, davem <dmowatt@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> Should a QueueBrowser work against a queue in a broker that is part of a
>>> network of brokers in 4.1.0?
>> 
>> Sure.
>> 
>>>  If I have two brokers in a network (each with
>>> a static network connector to the other) and I browse a queue on one of
>>> the
>>> two, then an INFO message is logged on the other broker that the
>>> connection
>>> between the brokers failed and has been recreated.  The cause of the
>>> failure
>>> is a NullPointerException from
>>> DemandForwardingBridgeSupport.configureMessage.
>> 
>> Do you have a full stack trace? Sounds like a bug.
>> 
>> -- 
>> 
>> James
>> -------
>> http://radio.weblogs.com/0112098/
>> 
>> 
> 
> 

-- 
View this message in context: http://www.nabble.com/QueueBrowser-with-Network-of-Brokers-tf3356541s2354.html#a11128713
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message