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,

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.


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

Reply via email to