Hi All, I've just got hit by an OutOfMemoryError: unable to create new native thread issue. I've switched UseDedicatedTaskRunner to false which appears to have resolved the issue for now but I have a feeling I'm just masking a deeper problem.
I have the following set up: 2 ActiveMQ brokers configured as a network of brokers Several applications that use - a Spring JmsTemplate with a PooledConnectionFactory - a Spring DefaultMessageListenerContainer that uses a regular ConnectionFactory. The DefaultMessageListenerContainers are set to CACHE_CONSUMER - a static failover broker URL for both the JmsTemplate and listener container to the two brokers In the applications themselves, I'm getting this: 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 java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:455) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:863) at org.apache.activemq.thread.PooledTaskRunner.wakeup(PooledTaskRunner.java:76) at org.apache.activemq.transport.failover.FailoverTransport.reconnect(FailoverTransport.java:536) at org.apache.activemq.transport.failover.FailoverTransport.start(FailoverTransport.java:239) at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57) at org.apache.activemq.transport.TransportFilter.start(TransportFilter.java:57) at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:260) at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:224) at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:172) at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:125) at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:110) at org.apache.activemq.pool.PooledConnectionFactory.createConnection(PooledConnectionFactory.java:81) at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:184) at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:461) at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:539) In the brokers I'm getting this: INFO | jvm 1 | 2009/09/30 12:28:41 | Exception in thread "ActiveMQ Transport Server Thread Hand ler: tcp://localhost:41414" java.lang.OutOfMemoryError: unable to create new native thread INFO | jvm 1 | 2009/09/30 12:28:41 | at java.lang.Thread.start0(Native Method) INFO | jvm 1 | 2009/09/30 12:28:41 | at java.lang.Thread.start(Thread.java:574) INFO | jvm 1 | 2009/09/30 12:28:41 | at org.apache.activemq.broker.TransportConnector$1.onAccept(TransportConnector.java:221) INFO | jvm 1 | 2009/09/30 12:28:41 | at org.apache.activemq.transport.tcp.TcpTransportServer.handleSocket(TcpTransportServer.java:409) INFO | jvm 1 | 2009/09/30 12:28:41 | at org.apache.activemq.transport.tcp.TcpTransportServer$1.run(TcpTransportServer.java:341) INFO | jvm 1 | 2009/09/30 12:28:41 | at java.lang.Thread.run(Thread.java:595) INFO | jvm 1 | 2009/09/30 12:59:27 | Exception in thread "DefaultMessageListenerContainer-80896" java.lang.OutOfMemoryError: unable to create new native thread INFO | jvm 1 | 2009/09/30 12:59:27 | at java.lang.Thread.start0(Native Method) INFO | jvm 1 | 2009/09/30 12:59:27 | at java.lang.Thread.start(Thread.java:574) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.core.task.SimpleAsyncTaskExecutor.doExecute(SimpleAsyncTaskExecutor.java:157) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.core.task.SimpleAsyncTaskExecutor.execute(SimpleAsyncTaskExecutor.java:145) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.core.task.SimpleAsyncTaskExecutor.execute(SimpleAsyncTaskExecutor.java:126) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.jms.listener.DefaultMessageListenerContainer.doRescheduleTask(DefaultMessageListenerContainer.java:598) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.jms.listener.AbstractJmsListeningContainer.rescheduleTaskIfNecessary(AbstractJmsListeningContainer.java:509) INFO | jvm 1 | 2009/09/30 12:59:27 | at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:918) I'm also getting a lot of these in the logs: FailoverTransport.doReconnect | Successfully connected to tcp://xxxxxxxx:xxxx any ideas?