I went ahead and applied Tom's patch to 4.1 and it does appear to help
matters.  Using the jmx-console I see that clients are eventually removed
upon power outage; but, it is taking approximately 15 minutes for that to
occur.

Was doing some debugging within the 4.1 code and noticed that the soTimeout
within the transport.tcp.TcpTransport class is not getting set (still 0),
even with it being explicitely set via the broker-config.xml
transportConnector.  Maybe I am misunderstanding the purpose of the
transportConnector soTimeout or have specified it incorrectly.

<transportConnector
uri="tcp://servername:61616?soTimeout=10000?jms.useAsyncSend=true?jms.dispatchAsync=true?jms.prefetchPolicy.all=20?jms.optimizeAcknowledge=false"/>

Best Regards.


James.Strachan wrote:
> 
> Many thanks for catching this Tom - patch applied in trunk.
> 
> Eric - do you want to try buiding the 4.2-trunk and seeing if this
> fixes your issue?
> http://activemq.apache.org/source.html
> 
> On 2/22/07, Tom Vijlbrief <[EMAIL PROTECTED]> wrote:
>> Op woensdag 21 februari 2007 21:05, schreef eccrowe:
>>
>> > It should also be noted that after a client power off, the remaining
>> active
>> > clients very quickly stop receiving their messages.  Server logs still
>> > appear to be sending messages but the enqueue count is not increasing
>> in
>> > the jmx-console and eventually the server logs stop logging send events
>> as
>> > well. All of this with jmx-console indicating 0 memory usage.
>> >
>> > Are there any default settings which have changed or have been added
>> > between 4.0-RC2 and 4.1 which may be causing these additional issues?
>> >
>>
>> There is (was) a problem with dying (Stomp) clients for which
>> I created a patch:
>>
>> https://issues.apache.org/activemq/secure/attachment/15322/patchInactivityMonitor.txt
>>
>> This could be related to your problem...
>>
>> ================
>> The InactivityMonitor code reads:
>>
>> public void onException(IOException error) {
>> if( monitorStarted.get() ) { stopMonitorThreads();
>> getTransportListener().onException(error); }
>> }
>>
>> So if monitorStarted is false the EOFException is completely ignored
>> and not propagated to higher layers!
>>
>> I assume it should be:
>>
>> public void onException(IOException error) {
>> if( monitorStarted.get() ) { stopMonitorThreads(); }
>> getTransportListener().onException(error); // tom.vijlbrief
>> }
>> ==============
>>
>>
>>
>> Tom
>>
> 
> 
> -- 
> 
> James
> -------
> http://radio.weblogs.com/0112098/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Memory-usage-increase-after-client-power-failure-tf3242706s2354.html#a9127672
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to