when it happens, do a thread dump to make sure you don't have a thread
leak (too many threads)
then lower your -Xmx setting, this will make more room in the JVM for
threads,
Filip
Michele Mazzucco wrote:
Hi all,
I'm facing the following error while using AMQ 5.0
ERROR efaultMessageListenerContainer - Setup of JMS message listener
invoker failed - trying to recover
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at
org.apache.activemq.thread.DedicatedTaskRunner.<init>(DedicatedTaskRunner.java:42)
at
org.apache.activemq.thread.TaskRunnerFactory.createTaskRunner(TaskRunnerFactory.java:74)
at
org.apache.activemq.ActiveMQSessionExecutor.wakeup(ActiveMQSessionExecutor.java:92)
at
org.apache.activemq.ActiveMQMessageConsumer.start(ActiveMQMessageConsumer.java:993)
at
org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:222)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1004)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:948)
at
org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:861)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createConsumer(AbstractPollingMessageListenerContainer.java:437)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createListenerConsumer(AbstractPollingMessageListenerContainer.java:216)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:297)
at
org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:254)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:871)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:818)
at java.lang.Thread.run(Thread.java:595)
Exception in thread "DefaultMessageListenerContainer-29"
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at
org.apache.activemq.transport.TransportThreadSupport.doStart(TransportThreadSupport.java:43)ERROR
Service - Async error occurred:
java.lang.OutOfMemoryError: unable to create new native thread
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at
org.apache.activemq.broker.TransportConnection.processShutdown(TransportConnection.java:326)
at org.apache.activemq.command.ShutdownInfo.visit(ShutdownInfo.java:35)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:281)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:178)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:138)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:185)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:172)
at java.lang.Thread.run(Thread.java:595)
at
org.apache.activemq.transport.tcp.TcpTransport.doStart(TcpTransport.java:368)
at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:48)
at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:56)
at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:56)
at
org.apache.activemq.transport.WireFormatNegotiator.start(WireFormatNegotiator.java:63)
at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:56)
at
org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:56)
at
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:256)
at
org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:220)
at
org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:168)
at
org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:188)
at
org.springframework.jms.listener.AbstractJmsListeningContainer.createSharedConnection(AbstractJmsListeningContainer.java:209)
at
org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:197)
at
org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:701)
at
org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:683)
at
org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:835)
at java.lang.Thread.run(Thread.java:595)
Exception in thread "ActiveMQ Transport Server: tcp://localhost:61616"
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at
org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:160)
at
org.apache.activemq.transport.tcp.TcpTransportServer.run(TcpTransportServer.java:213)
at java.lang.Thread.run(Thread.java:595)
ERROR Service - Async error occurred:
java.lang.OutOfMemoryError: unable to create new native thread
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:574)
at
org.apache.activemq.broker.TransportConnection.processShutdown(TransportConnection.java:326)
at org.apache.activemq.command.ShutdownInfo.visit(ShutdownInfo.java:35)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:281)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:178)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:67)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:134)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:138)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:185)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:172)
at java.lang.Thread.run(Thread.java:595)
INFO BrokerService - ActiveMQ Message Broker
(localhost, ID:giga06.ncl.ac.uk-41771-1209660890412-0:0) is shutting
down
INFO NetworkConnector - Network Connector
[EMAIL PROTECTED]
Stopped
INFO TransportConnector - Connector openwire Stopped
INFO TransportConnector - Connector vm://localhost Stopped
WARN ActiveMQConnection - Async exception with no
exception listener:
org.apache.activemq.transport.TransportDisposedIOException: Peer
(vm://localhost#1) disposed.
org.apache.activemq.transport.TransportDisposedIOException: Peer
(vm://localhost#1) disposed.
at
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:200)
at
org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
at
org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
INFO BrokerService - ActiveMQ JMS Message Broker
(localhost, ID:giga06.ncl.ac.uk-41771-1209660890412-0:0) stopped
INFO AdvisoryConsumer - Failed to send remove command:
javax.jms.JMSException: Peer (vm://localhost#1) disposed.
javax.jms.JMSException: Peer (vm://localhost#1) disposed.
at
org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:62)
at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1154)
at
org.apache.activemq.AdvisoryConsumer.dispose(AdvisoryConsumer.java:56)
at
org.apache.activemq.ActiveMQConnection.cleanup(ActiveMQConnection.java:1326)
at
org.apache.activemq.ActiveMQConnection.transportFailed(ActiveMQConnection.java:2027)
at
org.apache.activemq.ActiveMQConnection$4.run(ActiveMQConnection.java:1663)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.activemq.transport.TransportDisposedIOException:
Peer (vm://localhost#1) disposed.
at
org.apache.activemq.transport.vm.VMTransport.oneway(VMTransport.java:87)
at
org.apache.activemq.transport.MutexTransport.oneway(MutexTransport.java:40)
at
org.apache.activemq.transport.ResponseCorrelator.oneway(ResponseCorrelator.java:59)
at
org.apache.activemq.ActiveMQConnection.asyncSendPacket(ActiveMQConnection.java:1152)
... 7 more
My broker is running on a linux box with kernel 2.6 (I've read about
some similar issues when running on a kernel 2.4).
I'm using the following options when starting AMQ:
-Xms512m -Xmx1024m -Xmn500m
I'm using the default configuration (no persistence).
I don't know whether it can help to diagnose the problem, my clients
are creating a lot of temporary queues (everything is cleaned up after
use), but their lifetime is very short (a few seconds, they are just
used to receive a response message).
A similar problem occurs on my test client too (maybe it's related to
the error on the broker), but not on the server.
Any help would be appreciated,
Michele