activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Filip Hanik - Dev Lists <devli...@hanik.com>
Subject Re: java.lang.OutOfMemoryError: unable to create new native thread on AMQ 5.0
Date Thu, 01 May 2008 23:20:08 GMT
Michele Mazzucco wrote:
> Filip,
>
> if you mean on the client side, I have a thread pool configured to
> create max 100 threads.
>   
there could still be a thread leak in your application somewhere

> about -Xmx, that's the maximum amount of memory. Why are you telling
> me that by decreasing that value there would be more space for
> threads?
>   
cause, threads use memory, and that memory is not part of the Java Heap, 
and the JVM reserves memory for your java heap based on your -Xmx setting.

take a look at the "Inside the Java Virtual Machine" webinar at
http://www.covalent.net/services/training/webinars.html

it's recorded, and you'll learn how java memory management works

Filip
> Michele
>
>
> On Thu, May 1, 2008 at 7:50 PM, Filip Hanik - Dev Lists
> <devlists@hanik.com> wrote:
>   
>> 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
>>>
>>>       
>> org.apache.activemq.transport.discovery.multicast.MulticastDiscoveryAgent@17c96a9
>>     
>>> 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
>>>
>>>
>>>
>>>       
>>     
>
>   


Mime
View raw message