OutOfMemoryError: Java heap space

Use this forum for questions regarding adoption and functionality of OpenEMM

Moderator: moderator

greyhound
Posts: 7
Joined: Mon Nov 20, 2006 10:04 pm
Location: Germany
Contact:

OutOfMemoryError: Java heap space

Post by greyhound »

Hello,

when sending out a mailing I get the error

500 Servlet Exception

java.lang.OutOfMemoryError: Java heap space

Resin-3.0.19 (built Mon, 15 May 2006 04:50:47 PDT)

There are about 30.000 recipients in this mailing. We have already sent a lot of mailings using this computer, each had more than 20.000 recipients.
I am using OpenEMM 5.0.2. Does anybody have a clue, what I can do besides installing more RAM? The machine has 512 MB of RAM installed and does not seem to use it's swapspace

Greetings,
Herbert
hari
Posts: 17
Joined: Mon Oct 20, 2008 9:51 am

Post by hari »

I am using OpenEMM 5.5.1.
We have sent many mailings, each had more than 40.000 recipients but the following Error alwas occurred:

500 Servlet Exception
java.lang.OutOfMemoryError: Java heap space
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:393)
at java.lang.StringBuffer.append(StringBuffer.java:225)
at org.agnitas.backend.MailWriterMeta.writeMail(MailWriterMeta.java:1029)
at org.agnitas.backend.MailgunImpl.doExecute(MailgunImpl.java:554)
at org.agnitas.backend.MailgunImpl.executeMailgun(MailgunImpl.java:119)
at org.agnitas.beans.impl.MailingImpl.triggerMailing(MailingImpl.java:662)
at org.agnitas.web.MailingSendAction.sendMailing(MailingSendAction.java:445)
at org.agnitas.web.MailingSendAction.execute(MailingSendAction.java:233)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:174)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at org.ajaxanywhere.AAFilter.doFilter(AAFilter.java:46)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at org.agnitas.web.filter.SerializeRequestFilter.doFilter(SerializeRequestFilter.java:29)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at org.agnitas.web.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:51)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
________________________________________
Resin-3.0.19 (built Mon, 15 May 2006 04:50:47 PDT)


So I splitted the mailing into 3 parts, each having about 15000 recipients.
Now I have exactly the same problem like greyhound:

500 Servlet Exception
java.lang.OutOfMemoryError: Java heap space
--------------------------------------------------------------------------------
Resin-3.0.19 (built Mon, 15 May 2006 04:50:47 PDT)


So what can I do?
hari
Posts: 17
Joined: Mon Oct 20, 2008 9:51 am

Post by hari »

It is very important.
Has anybody an idea, apart from installing more RAM? Thank you!
maschoff
Site Admin
Posts: 2608
Joined: Thu Aug 03, 2006 10:20 am
Location: Munich, Germany
Contact:

Post by maschoff »

Allocate more heap space to the Java VM via Resin's configuration file httpd.conf in directory /home/openemm/bin. To do this add something like "-J-Xms256m" or "-J-Xms512m" to the args statement (line 50). This allocates a minimum of 256/512 MByte for Java.
OpenEMM Maintainer
hari
Posts: 17
Joined: Mon Oct 20, 2008 9:51 am

Post by hari »

Thank you for your answer. I tried it, but it didn't work. Maybe I allocated to less heap space.
But restarting OpenEMM helped (OpenEMM.sh stop and OpenEMM.sh start).
Post Reply