1. http://activemq.apache.org/producer-flow-control.html, and yes, you should enable it. You should protect the broker (by preventing messages from over-filling its heap) first and foremost, and PFC does that. 2. When you're out of memory, it tends to manifest itself all over the place. There's no direct causal relationship between the specific calls that fail and the running out of memory; all those calls tell you is that they're using memory, not that they're using an unreasonable amount of it or failing to free it.
Things that are relevant in any OOM situation: what version of ActiveMQ, what max heap size are you using, what GC strategy are you using, and what's the usage pattern for your broker (how many messages/second, how many queues/topics, persistent or non-persistent messages, how big are the messages, how long do the messages sit on the broker before being consumed, etc.)? I'd start with enabling PFC, and allocating more heap to the broker process if that's an option, and then I'd spend time characterizing what the expected worst-case memory usage is based on how many messages you expect to have in broker memory (non-persistent messages, plus persistent messages paged in for dispatch to consumers, see http://activemq.apache.org/message-cursors.html for an explanation) in the worst-case scenario you need to support. It's possible that you simply don't have the heap sized large enough to support the use-case you're trying to perform. Tim On Wed, Mar 7, 2018 at 2:06 AM, sathish.cre...@gmail.com < sathish.cre...@gmail.com> wrote: > Hi artnaseef, > > i am facing same issue in my startup log after 5 days, similar to this, > > Exception in thread "ActiveMQ InactivityMonitor Worker" Exception in thread > "pool-3-thread-121233" Exception in thread "pool-1-thread-1" Exception in > thread "pool-3-thread-432434" java.lang.OutOfMemoryError: GC overhead limit > exceeded > java.lang.OutOfMemoryError: GC overhead limit exceeded > > Let me know if below options will help, > 1. should i enable producer flow control? if so how do i enable it? > 2. getting this exception also along with this , > > Exception in thread "ActiveMQ Transport Server: > ssl://ip:port?socket.needClientAuth=true" java.lang.OutOfMemoryError: GC > overhead limit exceeded > at sun.security.ssl.InputRecord.<init>(InputRecord.java:93) > at sun.security.ssl.AppInputStream.<init>(AppInputStream.java:50) > at sun.security.ssl.SSLSocketImpl.init(SSLSocketImpl.java:640) > at sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:524) > at > sun.security.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:343) > at > org.apache.activemq.transport.tcp.TcpTransportServer. > doRunWithServerSocket(TcpTransportServer.java:403) > at > org.apache.activemq.transport.tcp.TcpTransportServer.run( > TcpTransportServer.java:325) > at java.lang.Thread.run(Thread.java:748) > > > > -- > Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User- > f2341805.html >