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 [EMAIL PROTECTED] > 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 [EMAIL PROTECTED] > 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