[
https://issues.apache.org/jira/browse/AMQ-4994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13887988#comment-13887988
]
zmhassan commented on AMQ-4994:
-------------------------------
Okay at this point I'm just testing the client side code. Every page will
display 100 Jms Messages and as we paginate through it will show the next 100.
I can do some optimizations but wanted your input on the design of it. Changed
a bit of the UI to look more modern using bootstrap and jQuery.
See screenshoot:
https://www.dropbox.com/s/f8wgkae6vpgrc21/Screenshot%20from%202014-01-31%2013%3A35%3A31.png
I used bootstrap 3.0 css and a bit of jQuery to get RSS feed data from the
ActiveMQ for the first 100 in the queue. As we go deeper the slower it will be.
Appreciate any feedback I'll be online at the usual times.
> 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
> Attachments: AMQ-4994.patch
>
>
> 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)