activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher G. Stach II" <...@ldsys.net>
Subject Re: Non-Persistent Topic not getting messages
Date Thu, 22 Feb 2007 03:30:42 GMT
GaryG wrote:
> AMQ Broker is down again.  Same situation.  However, running "jstack" on the
> PID doesn't work, it hangs connecting to the process.
> 
> So, I opened up the JMX console, and am providing you some of stats that
> looked interesting.
> 
> My main questions regarding this output are:
> 
> 1) Why does Broker memory limit seem to be 20 MB, when the Broker java
> process is explicitly started with 512MB.  I thought this was the setting by
> default?  Am I missing something?  Should there be some explicit option set
> in the activemq.xml to set the memory limit much higher?
> 
> 2)  Why is there a mismatch between JMS summary output for memory and this
> obscure tab for the Broker specifically?  Are they not the same thing?
> 
> =========
> 
> JMX
> ----
> 
> Live Threads
> ============
> 
> main
> --------------
> Name: main
> State: WAITING on [Z@16e3762
> Total blocked: 33  Total waited: 5
> 
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:474)
> org.apache.activemq.console.command.StartCommand.waitForShutdown(StartCommand.java:107)
> org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:68)
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
> org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:82)
> org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:50)
> org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:46)
> sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> java.lang.reflect.Method.invoke(Method.java:585)
> org.apache.activemq.console.Main.runTaskClass(Main.java:159)
> org.apache.activemq.console.Main.main(Main.java:91)
> -------------------
> 
> Name: ActiveMQ Transport Server: tcp://atla-dev-aic2.mss.iss.net:61616
> State: RUNNABLE
> Total blocked: 2  Total waited: 6
> 
> Stack trace: 
> java.net.PlainSocketImpl.socketAccept(Native Method)
> java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
> java.net.ServerSocket.implAccept(ServerSocket.java:450)
> java.net.ServerSocket.accept(ServerSocket.java:421)
> org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:153)
> java.lang.Thread.run(Thread.java:595)
> 
> ------------------
> ALL the transports look like this(ip obscured).  Looks like they're all out
> of memory.
> Either RAM or DISK???
> 
> Name: ActiveMQ Transport: tcp:///xxxxxxxxx:60230
> State: WAITING on java.lang.Object@7834eb
> Total blocked: 24  Total waited: 1
> 
> Stack trace: 
> java.lang.Object.wait(Native Method)
> java.lang.Object.wait(Object.java:474)
> org.apache.activemq.memory.UsageManager.waitForSpace(UsageManager.java:91)
> org.apache.activemq.memory.UsageManager.waitForSpace(UsageManager.java:88)
> org.apache.activemq.broker.region.Topic.send(Topic.java:239)
> org.apache.activemq.broker.region.AbstractRegion.send(AbstractRegion.java:292)
> org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:380)
> org.apache.activemq.broker.TransactionBroker.send(TransactionBroker.java:193)
> org.apache.activemq.broker.BrokerFilter.send(BrokerFilter.java:126)
> org.apache.activemq.broker.CompositeDestinationBroker.send(CompositeDestinationBroker.java:98)
> org.apache.activemq.broker.MutableBrokerFilter.send(MutableBrokerFilter.java:136)
> org.apache.activemq.broker.TransportConnection.processMessage(TransportConnection.java:480)
> org.apache.activemq.command.ActiveMQMessage.visit(ActiveMQMessage.java:604)
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:284)
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:177)
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:65)
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:133)
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:122)
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:137)
> java.lang.Thread.run(Thread.java:595)
> 
> ---------------------------
> 
> JMX Summary:
> 
> Memory
> Current heap size: 
>     15,134 kbytes
> Committed memory: 
>     25,088 kbytes
> Maximum heap size: 
>    504,896 kbytes
> Objects pending for finalization: 
>      0
> Garbage collector: 
> Name = 'PS MarkSweep', Collections = 359, Total time spent = 33.082 seconds
> Garbage collector: 
> Name = 'PS Scavenge', Collections = 50, Total time spent = 0.121 seconds
> 
> =========================
> 
> In JMX Consoler, clicking on MBeans tab, then selecting:
> org.apache.activemq -->amqDev2 --> Broker
> 
> Under Attributes tab, the MemoryLimit is 20 MB, even though the java process
> for AMQ was started with 512MB.
> The memory % used says 100%.
> 
> But this doesn't match the Summary Memory stats. What is this limit?
> 

There's an issue open for the waitForSpace issue.  I'm not sure if it
applies to your situation.  Anyway, you may want to look into the
usageManager settings in the broker configuration to set the limit
higher.  A 20MiB default seems weird.  I didn't think that there was a
default.

-- 
Christopher G. Stach II


Mime
View raw message