[
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