activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "zmhassan (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (AMQ-4994) Web Console - java.lang.OutOfMemoryError: Java heap space - while browsing deep queues
Date Wed, 29 Jan 2014 22:30:15 GMT

    [ https://issues.apache.org/jira/browse/AMQ-4994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13885825#comment-13885825
] 

zmhassan edited comment on AMQ-4994 at 1/29/14 10:29 PM:
---------------------------------------------------------

I'm able to generate pagination on the UI when the requests are small but I seem to be getting
an error from the server-side "java.lang out of memory .... " when messages when the queue
depth is large. I'm searching for where this bug is coming from. Pagination may sort of help
but we still need to find some way of limiting the amount of messages that get displayed.
I narrowed down where the problem is coming from I suspect that is somewhere in:

https://github.com/apache/activemq/blob/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/SendMessage.java#L51-L79

Also I can imagine that there could me more messages being produced and consumed at the same
time which we have to consider. Any suggestions on possible options? 




was (Author: zmhassan):
I'm able to generate pagination on the UI when the requests are small but I seem to be getting
an error from the server-side "java.lang out of memory .... " when messages when the queue
depth is large. I'm searching for where this bug is coming from. Pagination may sort of help
but we still need to find some way of limiting the amount of messages that get displayed.
I narrowed down where the problem is coming from I suspect that is somewhere in:

https://github.com/apache/activemq/blob/trunk/activemq-web-console/src/main/java/org/apache/activemq/web/controller/SendMessage.java#L51-L79

Also I can imagine that there could me more messages being produced and consumed at the same
time which we have to consider. Any suggestions on possible options? 

Note: Since the user is limited when using a single worker perhaps they can try a more scalable
architecture and have multiple brokers on different hosts to share the load to avoid contending
for the same resource.


> Web Console - java.lang.OutOfMemoryError: Java heap space - while browsing deep queues
> --------------------------------------------------------------------------------------
>
>                 Key: AMQ-4994
>                 URL: https://issues.apache.org/jira/browse/AMQ-4994
>             Project: ActiveMQ
>          Issue Type: Bug
>    Affects Versions: 5.9.0
>            Reporter: Dejan Bosanac
>            Priority: Blocker
>
> When browsing a deep queue with large number of messages, broker throws 
> {code}java.lang.OutOfMemoryError: Java heap space
> 	at java.util.Arrays.copyOf(Arrays.java:2367)
> 	at java.io.CharArrayWriter.write(CharArrayWriter.java:105)
> 	at java.io.PrintWriter.write(PrintWriter.java:426)
> 	at com.opensymphony.module.sitemesh.filter.RoutablePrintWriter.write(RoutablePrintWriter.java:144)
> 	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:181)
> 	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:412)
> 	at org.apache.taglibs.standard.tag.common.core.OutSupport.writeEscapedXml(OutSupport.java:239)
> 	at org.apache.taglibs.standard.tag.common.core.OutSupport.out(OutSupport.java:208)
> 	at org.apache.taglibs.standard.tag.common.core.OutSupport.doStartTag(OutSupport.java:128)
> 	at org.apache.jsp.browse_jsp._jspx_meth_c_out_6(org.apache.jsp.browse_jsp:323)
> 	at org.apache.jsp.browse_jsp.access$8(org.apache.jsp.browse_jsp:314)
> 	at org.apache.jsp.browse_jsp$browse_jspHelper.invoke0(org.apache.jsp.browse_jsp:426)
> 	at org.apache.jsp.browse_jsp$browse_jspHelper.invoke(org.apache.jsp.browse_jsp:450)
> 	at org.apache.jsp.tag.web.jms.forEachMessage_tag.doTag(org.apache.jsp.tag.web.jms.forEachMessage_tag:89)
> 	at org.apache.jsp.browse_jsp._jspx_meth_jms_forEachMessage_0(org.apache.jsp.browse_jsp:170)
> 	at org.apache.jsp.browse_jsp._jspService(org.apache.jsp.browse_jsp:100)
> 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:109)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:389)
> 	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486)
> 	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:652)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1320)
> 	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
> 	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
> 	at org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
> 	at org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:102)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
> 	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129){code}
> when trying to browse that queue.
> To reproduce it:
> 1. Start a broker with default configuration
> 2. Send 200k messages with
> {code}ant producer -Dmax=200000 -Ddurable=true -Dsubject=TEST{code}
> 3. Try to browse the queue
> http://localhost:8161/admin/browse.jsp?JMSDestination=TEST
> The proper solution to this problem is to implement proper pagination while browsing
the messages, so users can browse through all messages showing 100 msgs (or so) at the time
and not using all the available memory.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message