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.