I'm running a load test that intends to throw on the order of several
thousand connections at a 2 node broker system with failover (ActiveMQ
4.1.1) configured for tcp transport only.  However, I'm just using a single
broker node right now and am getting out of memory errors at about 400
connections.  I've set the Xmx to 1024M and the memory is only ~110 MB when 
this error occurs in the log.  I've pasted the exceptions below.  The latter
2 exceptions do not immediately follow the first.  They come maybe a minute
or so later.  I've tried setting the preFetch to 1 in case it's keeping
messages in memory.  But, to be honest, my test doesn't send messages until
all of the connections have been established.  Any suggestions as to what
might be the problem here?



jvm 1    | Exception in thread "ActiveMQ Transport Server:
tcp://localhost:61616" java.lang.OutOfMemoryError: unable to create new
native thread
jvm 1    |      at java.lang.Thread.start0(Native Method)
jvm 1    |      at java.lang.Thread.start(Thread.java:574)
jvm 1    |      at
org.apache.activemq.thread.DedicatedTaskRunner.<init>(DedicatedTaskRunner.java:45)
jvm 1    |      at
org.apache.activemq.thread.TaskRunnerFactory.createTaskRunner(TaskRunnerFactory.java:77)
jvm 1    |      at
org.apache.activemq.broker.TransportConnection.<init>(TransportConnection.java:174)
jvm 1    |      at
org.apache.activemq.broker.jmx.ManagedTransportConnection.<init>(ManagedTransportConnection.java:55)
jvm 1    |      at
org.apache.activemq.broker.jmx.ManagedTransportConnector.createConnection(ManagedTransportConnector.java:56)
jvm 1    |      at
org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:147)
jvm 1    |      at
org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:167)
jvm 1    |      at java.lang.Thread.run(Thread.java:595)
jvm 1    | Exception in thread "RMI RenewClean-[172.16.105.110:36883]"
java.lang.OutOfMemoryError: unable to create new native thread
jvm 1    |      at java.lang.Thread.start0(Native Method)
jvm 1    |      at java.lang.Thread.start(Thread.java:574)
jvm 1    |      at
sun.rmi.transport.tcp.TCPChannel.free(TCPChannel.java:321)
jvm 1    |      at sun.rmi.server.UnicastRef.free(UnicastRef.java:395)
jvm 1    |      at sun.rmi.server.UnicastRef.done(UnicastRef.java:412)
jvm 1    |      at sun.rmi.transport.DGCImpl_Stub.dirty(Unknown Source)
jvm 1    |      at
sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall(DGCClient.java:328)
jvm 1    |      at
sun.rmi.transport.DGCClient$EndpointEntry.access$1600(DGCClient.java:144)
jvm 1    |      at
sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:539)
jvm 1    |      at java.lang.Thread.run(Thread.java:595)
jvm 1    | Exception in thread "ActiveMQ Journal Checkpoint Worker"
java.lang.OutOfMemoryError: unable to create new native thread
jvm 1    |      at java.lang.Thread.start0(Native Method)
jvm 1    |      at java.lang.Thread.start(Thread.java:574)
jvm 1    |      at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:429)
jvm 1    |      at
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:857)
jvm 1    |      at
org.apache.activemq.store.journal.JournalPersistenceAdapter.doCheckpoint(JournalPersistenceAdapter.java:376)
jvm 1    |      at
org.apache.activemq.store.journal.JournalPersistenceAdapter$2.iterate(JournalPersistenceAdapter.java:129)
jvm 1    |      at
org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:101)
jvm 1    |      at
org.apache.activemq.thread.DedicatedTaskRunner.access$000(DedicatedTaskRunner.java:25)
jvm 1    |      at
org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:39)

-- 
View this message in context: 
http://www.nabble.com/ActiveMQ-Transport-Server-OutOfMemoryError-while-running-load-test-tf4697790s2354.html#a13428819
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to