Sound like you have the classical slow consumer fast producer problem.  Read
up on producer flow control feature, prefetchSize, etc.

-Dan


jimmymartin wrote:
> 
> Hello,
> 
> I'm running a 5.2.0 broker that throws the error below after about 2 days
> of running. I've seen some discussion from previous posts indicating that
> changing the thread stack size via -Xss is the solution. Does anyone have
> a suggestion as to the 'best' setting for this value for an activemq
> broker? The default value appears to be 256K, at least for the Sun JVM.
> 
> Also if there are any other configuration tweaks that could alleviate this
> problem, please let me know.
> 
> I have single broker with about 22 queues and approximately 24 connections
> per queue handling some 50 to 100 events per second. I'm using an IBM 1.5
> JVM on Linux. I've set the max heap size to 1024M.
> 
> Any help would be appreicated.
> 
> Thanks, Jimmy
> 
> 2009-10-04 06:43:11,406 [190.39.16:52113] ERROR Service                       
> - Async error occurred: java.lang.OutOfMemoryError: Failed to fork OS
> thread
> java.lang.OutOfMemoryError: Failed to fork OS thread
>       at java.lang.Thread.startImpl(Native Method)
>       at java.lang.Thread.start(Thread.java:970)
>       at
> java.util.concurrent.ThreadPoolExecutor.addIfUnderMaximumPoolSize(ThreadPoolExecutor.java:470)
>       at
> java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:878)
>       at
> org.apache.activemq.thread.PooledTaskRunner.wakeup(PooledTaskRunner.java:76)
>       at
> org.apache.activemq.store.amq.AMQMessageStore.removeMessage(AMQMessageStore.java:276)
>       at
> org.apache.activemq.store.amq.AMQMessageStore.removeMessage(AMQMessageStore.java:213)
>       at org.apache.activemq.broker.region.Queue.acknowledge(Queue.java:504)
>       at 
> org.apache.activemq.broker.region.Queue.removeMessage(Queue.java:1071)
>       at
> org.apache.activemq.broker.region.QueueSubscription.acknowledge(QueueSubscription.java:51)
>       at
> org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:238)
>       at
> org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373)
>       at
> org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462)
>       at
> org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
>       at
> org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
>       at
> org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
>       at
> org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
>       at
> org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
>       at org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
>       at
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
>       at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
>       at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>       at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
>       at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
>       at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
>       at
> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:104)
>       at
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
>       at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
>       at java.lang.Thread.run(Thread.java:803)
> 
> 

-- 
View this message in context: 
http://www.nabble.com/ava.lang.OutOfMemoryError%3A-Failed-to-fork-OS-thread---5.2.0-broker-tp25774586p25775235.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to