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

guillaume peron commented on AMQ-4487:
--------------------------------------

Simple reproducer (however, I am not sure it happens every time).
1/ I used default server config, except changing producerFlowControl to false
2/ I used activemq 5.3.2 tool to send 100k messages (used JMX to check number 
of messages)
java -classpath activemq-all-5.3.2.jar org.apache.activemq.benchmark.Producer 
tcp://localhost:61616 false TEST.FOO false 1
3/ I used activemq 5.3.2 tool to dequeue messages, still 9k messages in the 
queue (used JMX to check number of messages)
4/ I used the code below to browse messages - it slowed down over time with the 
jvm keeping doing full GC
I stopped after 100k iterations, on a queue with 9k messages...

import java.util.Date;
import java.util.Enumeration;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Queue;
import javax.jms.QueueBrowser;
import javax.jms.Session;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQQueue;

public class QBrowse {
        ConnectionFactory connectionFactory;
        Connection connection;
        Session session;

        static public void main(String[] parms) throws JMSException {
                QBrowse qb = new QBrowse();
                qb.initCli();
                qb.oldestMsgInQueue("BENCHMARK.FEED0");
                qb.endCli();
        }

        public void initCli() throws JMSException {
                connectionFactory = new 
ActiveMQConnectionFactory("tcp://localhost:61616");
                connection = connectionFactory.createConnection();
                connection.start();
                session = connection.createSession(false, 
Session.AUTO_ACKNOWLEDGE);
        }

        public void endCli() throws JMSException {
                session.close();
                connection.close();
        }

        
        public void oldestMsgInQueue(String qname) throws JMSException{
                Queue q1= new ActiveMQQueue(qname );
                QueueBrowser br = session.createBrowser(q1,null);
                int iter = 0;
                Enumeration e = br.getEnumeration();
                while(e.hasMoreElements()){
                        if((iter % 1000) == 0)
                                System.out.println(iter);
                        iter = iter+1;
                        Message m = (Message) e.nextElement();
                }
                br.close();
                }
}

                
> java.lang.OutOfMemoryError: Java heap space
> -------------------------------------------
>
>                 Key: AMQ-4487
>                 URL: https://issues.apache.org/jira/browse/AMQ-4487
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.8.0
>         Environment: OS - Linux 2.6.18-238.el5 #1 SMP Sun Dec 19 14:22:44 EST 
> 2010 x86_64 x86_64 x86_64 GNU/Linux
> Activemq - 5.8
>            Reporter: Subathra Jayaraman
>
> Hi,
> When we browse a queue in webconsole we are getting 
> java.lang.OutOfMemoryError: Java heap space. 
> Memory allocation -----> -Xms512m -Xmx3G
> When we try to click the queue to view the messages below error is occurring. 
> We recently moved from 5.7 to 5.8 version. We dint face this issue in 5.7 
> version.
> Kindly help in fixing the issue.
> java.lang.OutOfMemoryError: Java heap space
>         at java.util.Arrays.copyOf(Arrays.java:2882)
>         at java.io.CharArrayWriter.write(CharArrayWriter.java:88)
>         at java.io.PrintWriter.write(PrintWriter.java:382)
>         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:449)
>         at 
> org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:462)
>         at 
> org.apache.jsp.browse_jsp$browse_jspHelper.invoke0(org.apache.jsp.browse_jsp:382)
>         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:1329)
>         at 
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
>         at 
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
>         at 
> org.apache.activemq.web.SessionFilter.doFilter(SessionFilter.java:45)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
>         at 
> org.apache.activemq.web.filter.ApplicationContextFilter.doFilter(ApplicationContextFilter.java:102)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
>         at 
> com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
>         at 
> com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
>         at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1300)
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:445)
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> Thank you.
> Regards,
> Subathra.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to