Can you post your activemq.xml? It looks like you need to restrict the memory usage of the broker and have it spool messages to disk when the memory limits are reached. See some additional detail at http://activemq.apache.org/javalangoutofmemory.html#java.lang.OutOfMemory-SpoolingMessagestoDisk *
* 2009/10/12 tejeswara <tejesw...@gmail.com> > > Our broker is running on Linux (RHEL4 box) and after 1 or 2 days I see > below > error in logs. > Note that, below values are set in bin/activemq in out test lab: > if [ -z "$ACTIVEMQ_OPTS" ] ; then > ACTIVEMQ_OPTS="-Xmx512M -Dorg.apache.activemq.UseDedicatedTaskRunner=true" > fi > > I tried to stress test broker by creating 200 queues and put 5000 messages > (each about 1500 bytes size) > in each of these queues. However I could not see any error. Below error > occured when broker is idle. > From logs, only activity during this idle period I see is 'DEBUG > InactivityMonitor - 30177 ms elapsed since last read check' > > Can someone help in pointing out what is going wrong? > > Note that, OutOfMemoryError is seen in our production even when heap size > is > bumped up to 1024 and > dedicated task runner is set to false. This error usvally occurs after 2 > days broker running without restart. > if [ -z "$ACTIVEMQ_OPTS" ] ; then > ACTIVEMQ_OPTS="-Xmx1024M > -Dorg.apache.activemq.UseDedicatedTaskRunner=false" > fi > > > Stack Trace:-> > > JVMDUMP006I Processing Dump Event "uncaught", detail > "java/lang/OutOfMemoryError" - Please Wait. > JVMDUMP007I JVM Requesting Snap Dump using > '/x/web/STAGE2SC5464/idimqbroker/Snap0001.20091010.015439.16581.trc' > JVMDUMP010I Snap Dump written to > /x/web/STAGE2SC5464/idimqbroker/Snap0001.20091010.015439.16581.trc > JVMDUMP007I JVM Requesting Heap Dump using > '/x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.015439.16581.phd' > JVMDUMP010I Heap Dump written to > /x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.015439.16581.phd > JVMDUMP007I JVM Requesting Java Dump using > '/x/web/STAGE2SC5464/idimqbroker/javacore.20091010.015439.16581.txt' > JVMDUMP010I Java Dump written to > /x/web/STAGE2SC5464/idimqbroker/javacore.20091010.015439.16581.txt > JVMDUMP013I Processed Dump Event "uncaught", detail > "java/lang/OutOfMemoryError". > Exception in thread "MulticastDiscovery: null" java.lang.OutOfMemoryError: > heap allocation failed > at java.net.PlainDatagramSocketImpl.receive0(Native Method) > at > java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:181) > at java.net.DatagramSocket.receive(DatagramSocket.java:724) > at > > org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.run(MulticastDiscoveryAgent.java:338) > at java.lang.Thread.run(Thread.java:803) > JVMDUMP006I Processing Dump Event "uncaught", detail > "java/lang/OutOfMemoryError" - Please Wait. > JVMDUMP007I JVM Requesting Snap Dump using > '/x/web/STAGE2SC5464/idimqbroker/Snap0002.20091010.034616.16581.trc' > JVMDUMP010I Snap Dump written to > /x/web/STAGE2SC5464/idimqbroker/Snap0002.20091010.034616.16581.trc > JVMDUMP007I JVM Requesting Heap Dump using > '/x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.034616.16581.phd' > JVMDUMP016E Aborting: Cannot create file > (/x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.034616.16581.phd) > JVMDUMP012E Error in Heap Dump: binary dump file cannot be written > JVMDUMP007I JVM Requesting Java Dump using > '/x/web/STAGE2SC5464/idimqbroker/javacore.20091010.034616.16581.txt' > UTE503: utsGetTracePointIterator cannot allocate iterator's buffer > JVMDUMP010I Java Dump written to > /x/web/STAGE2SC5464/idimqbroker/javacore.20091010.034616.16581.txt > JVMDUMP013I Processed Dump Event "uncaught", detail > "java/lang/OutOfMemoryError". > Exception in thread "MulticastDiscovery: tcp://stage2sc5464.:61616" > java.lang.OutOfMemoryError: heap allocation failed > at java.net.PlainDatagramSocketImpl.receive0(Native Method) > at > java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:181) > at java.net.DatagramSocket.receive(DatagramSocket.java:724) > at > > org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent.run(MulticastDiscoveryAgent.java:338) > at java.lang.Thread.run(Thread.java:803) > JVMDUMP006I Processing Dump Event "uncaught", detail > "java/lang/OutOfMemoryError" - Please Wait. > JVMDUMP007I JVM Requesting Snap Dump using > '/x/web/STAGE2SC5464/idimqbroker/Snap0003.20091010.034640.16581.trc' > JVMDUMP010I Snap Dump written to > /x/web/STAGE2SC5464/idimqbroker/Snap0003.20091010.034640.16581.trc > JVMDUMP007I JVM Requesting Heap Dump using > '/x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.034640.16581.phd' > JVMDUMP016E Aborting: Cannot create file > (/x/web/STAGE2SC5464/idimqbroker/heapdump.20091010.034640.16581.phd) > JVMDUMP012E Error in Heap Dump: binary dump file cannot be written > JVMDUMP007I JVM Requesting Java Dump using > '/x/web/STAGE2SC5464/idimqbroker/javacore.20091010.034640.16581.txt' > UTE503: utsGetTracePointIterator cannot allocate iterator's buffer > JVMDUMP010I Java Dump written to > /x/web/STAGE2SC5464/idimqbroker/javacore.20091010.034640.16581.txt > JVMDUMP013I Processed Dump Event "uncaught", detail > "java/lang/OutOfMemoryError". > Exception in thread "InactivityMonitor WriteCheck" > java.lang.OutOfMemoryError > at java.security.AccessController.getProtectionDomains(Native > Method) > at > java.security.AccessController.getContext(AccessController.java:132) > at java.lang.Thread.initialize(Thread.java:347) > at java.lang.Thread.<init>(Thread.java:278) > at java.lang.Thread.<init>(Thread.java:170) > at > > org.apache.activemq.transport.InactivityMonitor$5.newThread(InactivityMonitor.java:303) > at > > java.util.concurrent.ThreadPoolExecutor.addThread(ThreadPoolExecutor.java:411) > at > > java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:463) > at > > java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:878) > at > > org.apache.activemq.transport.InactivityMonitor.writeCheck(InactivityMonitor.java:128) > at > > org.apache.activemq.transport.InactivityMonitor$2.run(InactivityMonitor.java:103) > at > > org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33) > at java.util.TimerThread.mainLoop(Timer.java:527) > at java.util.TimerThread.run(Timer.java:477) > Exception in thread "RMI TCP Connection(454)-10.15.26.210" > java.lang.NoClassDefFoundError: java.io.StreamCorruptedException > at > > sun.rmi.transport.StreamRemoteCall.getResultStream(StreamRemoteCall.java:177) > at > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:335) > at sun.rmi.transport.Transport$1.run(Transport.java:168) > at > java.security.AccessController.doPrivileged(AccessController.java:275) > java.lang.NoClassDefFoundError: java.rmi.UnmarshalException > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:506) > at > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.handleRequest(TCPTransport.java:838) > at > sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) > at > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:912) > at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:358) > at java.lang.Thread.run(Thread.java:803) > at sun.rmi.transport.DGCImpl_Stub.dirty(DGCImpl_Stub.java:67) > at > sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:344) > at > sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:160) > at > > sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:555) > at java.lang.Thread.run(Thread.java:803) > Exception in thread "RMI LeaseChecker" java.lang.NoClassDefFoundError: > java.rmi.server.Unreferenced > at sun.rmi.transport.Target.refSetRemove(Target.java:320) > at sun.rmi.transport.Target.vmidDead(Target.java:444) > at sun.rmi.transport.DGCImpl.checkLeases(DGCImpl.java:265) > at sun.rmi.transport.DGCImpl.access$400(DGCImpl.java:47) > at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:329) > at java.lang.Thread.run(Thread.java:803) > Unhandled exception > Type=Segmentation error vmState=0x00053fff > J9Generic_Signal_Number=00000004 Signal_Number=0000000b > Error_Value=00000000 > Signal_Code=00000001 > Handler1=008F64F0 Handler2=00142477 InaccessibleAddress=00000000 > EDI=00000000 ESI=27E112E0 EAX=00000000 EBX=00000000 > ECX=08B7DF40 EDX=00000000 > EIP=00F97DB4 ES=0000007B DS=C02D007B ESP=00855BB8 > EFlags=00210206 CS=00000073 SS=0000007B EBP=00855BB8 > Module=/x/web/STAGE2SC5464/idimqbroker/java/jre/bin/libj9jit23.so > Module_base_address=00F09000 > > > Method_being_compiled=org/springframework/jms/listener/DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run()V > Target=2_30_20070524_12771_lHdSMR (Linux 2.6.9-55.ELsmp) > CPU=x86 (8 logical CPUs) (0x47621d000 RAM) > JVMDUMP006I Processing Dump Event "gpf", detail "" - Please Wait. > JVMDUMP007I JVM Requesting System Dump using > '/x/web/STAGE2SC5464/idimqbroker/core.20091011.220932.16581.dmp' > JVMDUMP012E Error in System Dump: cannot find core file, check "ulimit -c" > is set high enough > JVMDUMP007I JVM Requesting Snap Dump using > '/x/web/STAGE2SC5464/idimqbroker/Snap0004.20091011.220932.16581.trc' > JVMDUMP010I Snap Dump written to > /x/web/STAGE2SC5464/idimqbroker/Snap0004.20091011.220932.16581.trc > JVMDUMP007I JVM Requesting Java Dump using > '/tmp/javacore.20091011.220932.16581.txt' > NULL > ------------------------------------------------------------------------ > 0SECTION TITLE subcomponent dump routine > NULL =============================== > 1TISIGINFO Dump Event "gpf" (00002000) received > 1TIDATETIME Date: 2009/10/11 at 22:10:17 > 1TIFILENAME Javacore filename: > /tmp/javacore.20091011.220932.16581.txt > NULL > ------------------------------------------------------------------------ > 0SECTION GPINFO subcomponent dump routine > NULL ================================ > 2XHOSLEVEL OS Level : Linux 2.6.9-55.ELsmp > 2XHCPUS Processors - > 3XHCPUARCH Architecture : x86 > 3XHNUMCPUS How Many : 8 > NULL > > > > -- > View this message in context: > http://www.nabble.com/java-lang-OutOfMemoryError-tp25864372p25864372.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > > -- http://blog.garytully.com Open Source Integration http://fusesource.com