Re: OutOfMemoryError after serving N pages
Hello all, Arjan Verstoep and me co-posted the original message. We experienced our web-application to consume all available memory slowly but steadily until no memory was left. This was in a production environment, with caching enabled. Since then, we were able to locate and eliminate one source of this problem, which we will describe below. Since then, the memory consumption still rises slowly during production deployment, but not nearly as much as it used to. We are not yet completely satisfied, because the memory consumption still leads to OutOfMemoryExceptions eventually. We do not think the problem is with Tapestry. Rather, there might be a few (common) coding mistakes that lead to this kind of problem. We must continue our search for any remaining sources of the problem. We hope this information might be helpfull to others. The problem (partially solved): In our Engine class, we used to set the Locale for our application. This contained erroneous code: public final void setLocale(Locale locale) { if (getLocale() == null ) { super.setlocale(new Locale("nl","NL")); } else { super.setLocale(locale); } } This code effectively prevented Tapestry to cache pages, because every page was different (each page received a freshly made Locale object). We replaced the code above with: private static final Locale NL = new Locale("nl","NL"); public final void setLocale(Locale locale) { if (getLocale() == null ) { super.setlocale(NL); } else { super.setLocale(locale); } In this code each page receives the same Locale object and caching now works as it should. On Thu, 28 Jun 2007 22:48:21 -0400, Jesse Kuhnert wrote > Doesn't happen in dev or production mode with Tapestry 4.1.2. At > least not even remotely near what it used to. It's possible someone > may hit it at one point I suppose. > > On 6/28/07, Evan Rawson - Work <[EMAIL PROTECTED]> wrote: > > > > that is correct. we disable caching on our dev machines, but enable it on > > our live servers and testing servers. This allows for less local resources > > to be used and faster redeployments, usually only happens after say 20 > > to30 > > redeployments on a 2gig box. using about 60% of system resources. Ive seen > > tomcat get up to well over 400 megs. our live servers have never gotten an > > outta memory with caching on in the last two years, which makes me happy. > > > > evan > > - Original Message - > > From: "Norman Franke" <[EMAIL PROTECTED]> > > To: "Tapestry users" > > Sent: Thursday, June 28, 2007 12:25 PM > > Subject: Re: OutOfMemoryError after serving N pages > > > > > > >I get this if I disable caching after a while. However, I have not seen > > it > > >with caching enabled. > > > > > > -Norman > > > > > > On Jun 28, 2007, at 11:47 AM, Evan Rawson - Work wrote: > > > > > >> what application host are you using. cuz i know in tomcat, when you > > >> redeploy X amount of times you will get out of memory error. i > > dont know > > >> if this is some how related. but the only way to fix it is to shut > > down > > >> and start tomcat back up. > > >> > > >> evan > > >> - Original Message - From: "Thomas Wiz" <[EMAIL PROTECTED]> > > >> To: > > >> Sent: Thursday, June 28, 2007 3:40 AM > > >> Subject: Re: OutOfMemoryError after serving N pages > > >> > > >> > > >>> > > >>> > > >>> > > >>> Arjan Verstoep wrote: > > >>>> > > >>>> I'm building an application with the Tapestry 4.0.2 framework, which > > >>>> manages my music-collection. I'm getting OutOfMemoryErrors > > since I've > > >>>> created a small ajax-ish component that refreshes every 10 seconds > > to > > >>>> show the song that is currently playing. A piece of javascript gets > > >>>> the > > >>>> Tapestry-page with the currently-playing song on it, and puts the > > >>>> generated html into a . After 24 hours or so making these > > >>>> page-requests, an out of memory error occurs. > > >>>> > > >>>> I have the feeling that this new auto-refreshing component of mine > > >>>> only > > >>>> quickens the OutOfMemoryError, since I did get these errors before, > > >>>> but > > >>>> only after much longer uptimes. > > &g
Re: OutOfMemoryError after serving N pages
Doesn't happen in dev or production mode with Tapestry 4.1.2. At least not even remotely near what it used to. It's possible someone may hit it at one point I suppose. On 6/28/07, Evan Rawson - Work <[EMAIL PROTECTED]> wrote: that is correct. we disable caching on our dev machines, but enable it on our live servers and testing servers. This allows for less local resources to be used and faster redeployments, usually only happens after say 20 to30 redeployments on a 2gig box. using about 60% of system resources. Ive seen tomcat get up to well over 400 megs. our live servers have never gotten an outta memory with caching on in the last two years, which makes me happy. evan - Original Message - From: "Norman Franke" <[EMAIL PROTECTED]> To: "Tapestry users" Sent: Thursday, June 28, 2007 12:25 PM Subject: Re: OutOfMemoryError after serving N pages >I get this if I disable caching after a while. However, I have not seen it >with caching enabled. > > -Norman > > On Jun 28, 2007, at 11:47 AM, Evan Rawson - Work wrote: > >> what application host are you using. cuz i know in tomcat, when you >> redeploy X amount of times you will get out of memory error. i dont know >> if this is some how related. but the only way to fix it is to shut down >> and start tomcat back up. >> >> evan >> - Original Message ----- From: "Thomas Wiz" <[EMAIL PROTECTED]> >> To: >> Sent: Thursday, June 28, 2007 3:40 AM >> Subject: Re: OutOfMemoryError after serving N pages >> >> >>> >>> >>> >>> Arjan Verstoep wrote: >>>> >>>> I'm building an application with the Tapestry 4.0.2 framework, which >>>> manages my music-collection. I'm getting OutOfMemoryErrors since I've >>>> created a small ajax-ish component that refreshes every 10 seconds to >>>> show the song that is currently playing. A piece of javascript gets >>>> the >>>> Tapestry-page with the currently-playing song on it, and puts the >>>> generated html into a . After 24 hours or so making these >>>> page-requests, an out of memory error occurs. >>>> >>>> I have the feeling that this new auto-refreshing component of mine >>>> only >>>> quickens the OutOfMemoryError, since I did get these errors before, >>>> but >>>> only after much longer uptimes. >>>> >>>> What am I doing wrong here? Is it the Spring OpenSessionInView- filter >>>> that I use that is wasting memory, am I not cleaning-up everything >>>> myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the >>>> page follows: >>>> (You can also have a look at >>>> http://musicontroller.cvs.sourceforge.net/musicontroller/ for more >>>> sourcecode) >>>> >>>> Thanks, >>>> ~Arjan Verstoep >>>> >>>> >>> Hi Arjan, >>> I'm having the same problem you had: heap space OOME after serving N >>> pages. >>> Did you find any solutions? >>> Thanks. >>> -- >>> View this message in context: http://www.nabble.com/ >>> OutOfMemoryError-after-serving-N-pages-tf3272095.html#a11338497 >>> Sent from the Tapestry - User mailing list archive at Nabble.com. >>> >>> >>> - >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> - >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Jesse Kuhnert Tapestry/Dojo team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
Re: OutOfMemoryError after serving N pages
that is correct. we disable caching on our dev machines, but enable it on our live servers and testing servers. This allows for less local resources to be used and faster redeployments, usually only happens after say 20 to30 redeployments on a 2gig box. using about 60% of system resources. Ive seen tomcat get up to well over 400 megs. our live servers have never gotten an outta memory with caching on in the last two years, which makes me happy. evan - Original Message - From: "Norman Franke" <[EMAIL PROTECTED]> To: "Tapestry users" Sent: Thursday, June 28, 2007 12:25 PM Subject: Re: OutOfMemoryError after serving N pages I get this if I disable caching after a while. However, I have not seen it with caching enabled. -Norman On Jun 28, 2007, at 11:47 AM, Evan Rawson - Work wrote: what application host are you using. cuz i know in tomcat, when you redeploy X amount of times you will get out of memory error. i dont know if this is some how related. but the only way to fix it is to shut down and start tomcat back up. evan - Original Message - From: "Thomas Wiz" <[EMAIL PROTECTED]> To: Sent: Thursday, June 28, 2007 3:40 AM Subject: Re: OutOfMemoryError after serving N pages Arjan Verstoep wrote: I'm building an application with the Tapestry 4.0.2 framework, which manages my music-collection. I'm getting OutOfMemoryErrors since I've created a small ajax-ish component that refreshes every 10 seconds to show the song that is currently playing. A piece of javascript gets the Tapestry-page with the currently-playing song on it, and puts the generated html into a . After 24 hours or so making these page-requests, an out of memory error occurs. I have the feeling that this new auto-refreshing component of mine only quickens the OutOfMemoryError, since I did get these errors before, but only after much longer uptimes. What am I doing wrong here? Is it the Spring OpenSessionInView- filter that I use that is wasting memory, am I not cleaning-up everything myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the page follows: (You can also have a look at http://musicontroller.cvs.sourceforge.net/musicontroller/ for more sourcecode) Thanks, ~Arjan Verstoep Hi Arjan, I'm having the same problem you had: heap space OOME after serving N pages. Did you find any solutions? Thanks. -- View this message in context: http://www.nabble.com/ OutOfMemoryError-after-serving-N-pages-tf3272095.html#a11338497 Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
I get this if I disable caching after a while. However, I have not seen it with caching enabled. -Norman On Jun 28, 2007, at 11:47 AM, Evan Rawson - Work wrote: what application host are you using. cuz i know in tomcat, when you redeploy X amount of times you will get out of memory error. i dont know if this is some how related. but the only way to fix it is to shut down and start tomcat back up. evan - Original Message - From: "Thomas Wiz" <[EMAIL PROTECTED]> To: Sent: Thursday, June 28, 2007 3:40 AM Subject: Re: OutOfMemoryError after serving N pages Arjan Verstoep wrote: I'm building an application with the Tapestry 4.0.2 framework, which manages my music-collection. I'm getting OutOfMemoryErrors since I've created a small ajax-ish component that refreshes every 10 seconds to show the song that is currently playing. A piece of javascript gets the Tapestry-page with the currently-playing song on it, and puts the generated html into a . After 24 hours or so making these page-requests, an out of memory error occurs. I have the feeling that this new auto-refreshing component of mine only quickens the OutOfMemoryError, since I did get these errors before, but only after much longer uptimes. What am I doing wrong here? Is it the Spring OpenSessionInView- filter that I use that is wasting memory, am I not cleaning-up everything myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the page follows: (You can also have a look at http://musicontroller.cvs.sourceforge.net/musicontroller/ for more sourcecode) Thanks, ~Arjan Verstoep Hi Arjan, I'm having the same problem you had: heap space OOME after serving N pages. Did you find any solutions? Thanks. -- View this message in context: http://www.nabble.com/ OutOfMemoryError-after-serving-N-pages-tf3272095.html#a11338497 Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
what application host are you using. cuz i know in tomcat, when you redeploy X amount of times you will get out of memory error. i dont know if this is some how related. but the only way to fix it is to shut down and start tomcat back up. evan - Original Message - From: "Thomas Wiz" <[EMAIL PROTECTED]> To: Sent: Thursday, June 28, 2007 3:40 AM Subject: Re: OutOfMemoryError after serving N pages Arjan Verstoep wrote: I'm building an application with the Tapestry 4.0.2 framework, which manages my music-collection. I'm getting OutOfMemoryErrors since I've created a small ajax-ish component that refreshes every 10 seconds to show the song that is currently playing. A piece of javascript gets the Tapestry-page with the currently-playing song on it, and puts the generated html into a . After 24 hours or so making these page-requests, an out of memory error occurs. I have the feeling that this new auto-refreshing component of mine only quickens the OutOfMemoryError, since I did get these errors before, but only after much longer uptimes. What am I doing wrong here? Is it the Spring OpenSessionInView-filter that I use that is wasting memory, am I not cleaning-up everything myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the page follows: (You can also have a look at http://musicontroller.cvs.sourceforge.net/musicontroller/ for more sourcecode) Thanks, ~Arjan Verstoep Hi Arjan, I'm having the same problem you had: heap space OOME after serving N pages. Did you find any solutions? Thanks. -- View this message in context: http://www.nabble.com/OutOfMemoryError-after-serving-N-pages-tf3272095.html#a11338497 Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
Arjan Verstoep wrote: > > I'm building an application with the Tapestry 4.0.2 framework, which > manages my music-collection. I'm getting OutOfMemoryErrors since I've > created a small ajax-ish component that refreshes every 10 seconds to > show the song that is currently playing. A piece of javascript gets the > Tapestry-page with the currently-playing song on it, and puts the > generated html into a . After 24 hours or so making these > page-requests, an out of memory error occurs. > > I have the feeling that this new auto-refreshing component of mine only > quickens the OutOfMemoryError, since I did get these errors before, but > only after much longer uptimes. > > What am I doing wrong here? Is it the Spring OpenSessionInView-filter > that I use that is wasting memory, am I not cleaning-up everything > myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the > page follows: > (You can also have a look at > http://musicontroller.cvs.sourceforge.net/musicontroller/ for more > sourcecode) > > Thanks, > ~Arjan Verstoep > > Hi Arjan, I'm having the same problem you had: heap space OOME after serving N pages. Did you find any solutions? Thanks. -- View this message in context: http://www.nabble.com/OutOfMemoryError-after-serving-N-pages-tf3272095.html#a11338497 Sent from the Tapestry - User mailing list archive at Nabble.com. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
May the sone property abstract. You are clearing it inside finishLoad() which means, even with caching enabled, the song (and the presumably Hibernate session that it was obtained from) is retained needlessly between requests. Most likely culprit is caching disabled, which leaks some memory related to the series of Classes / ClassLoaders it builds. On 2/22/07, Arjan Verstoep <[EMAIL PROTECTED]> wrote: Hi, I'm building an application with the Tapestry 4.0.2 framework, which manages my music-collection. I'm getting OutOfMemoryErrors since I've created a small ajax-ish component that refreshes every 10 seconds to show the song that is currently playing. A piece of javascript gets the Tapestry-page with the currently-playing song on it, and puts the generated html into a . After 24 hours or so making these page-requests, an out of memory error occurs. I have the feeling that this new auto-refreshing component of mine only quickens the OutOfMemoryError, since I did get these errors before, but only after much longer uptimes. What am I doing wrong here? Is it the Spring OpenSessionInView-filter that I use that is wasting memory, am I not cleaning-up everything myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the page follows: (You can also have a look at http://musicontroller.cvs.sourceforge.net/musicontroller/ for more sourcecode) Thanks, ~Arjan Verstoep public abstract class CurrentlyPlaying extends BasePage { public abstract SessionUserState getSessionUserState(); public abstract Dao getDao(); private Song _song = null; public Song getCurrentSong() { if (_song==null) { _song = getDao().getSongById(getSessionUserState().getDJ().getCurrentSongId()); } return _song; } public void finishLoad() { super.finishLoad(); _song = null; } } http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";> - - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- Howard M. Lewis Ship TWD Consulting, Inc. Independent J2EE / Open-Source Java Consultant Creator and PMC Chair, Apache Tapestry Creator, Apache HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
Are you disabling page/component class caching? Of course, I think that causes the permgen stuff as mentioned before, but it may be part of your problem. On 2/22/07, Joe Trewin <[EMAIL PROTECTED]> wrote: If you're using Tomcat and have access to the startup scripts, I'd suggest turning on JMX so that you can have a look inside the memory heaps using jconsole. To do this add a line to tomcat/bin/startup.sh just before the exec at the end: export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9098 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" (Note that this assumes an internal dev box, as there's no ssl or authentication turned on.) You can then connect to it with jconsole (in your java install's bin directory). The next step would be some more automated profiling, but just visually looking at the state of the heaps during a load test can be quite helpful. > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: 22 February 2007 13:22 > To: users@tapestry.apache.org > Subject: RE: OutOfMemoryError after serving N pages > > Yeah, that is more sinister. > > Try dropping a lambdaprobe.war in your container and watching > what happens to your app as you serve up N pages. > > It isn't as detailed as JProbe or anything like that, but > you'll be up and running in 5 minutes and it may give you a > better overview of your runtime environment and any resource > constraints you may unknowingly have. > > http://www.lambdaprobe.org/d/index.htm > > > Tom > > -Original Message- > From: Arjan Verstoep [mailto:[EMAIL PROTECTED] > Sent: Thursday, February 22, 2007 8:15 AM > To: Tapestry users > Subject: Re: OutOfMemoryError after serving N pages > > [EMAIL PROTECTED] wrote: > > We had the same thing, and in our case it was related to a small > PermGen > > Space setting in our Tomcat container. > > > > My understanding of the Sun JVM is that it partitions up > its allocated > > memory into heap, perm gen, etc. chunks and that the Perm > Gen space is > > where all "meta data" about classes gets stored. In "modern" JEE > > programming with all the CGLIB and just-in-time abstract class > overrides > > & instantiation, the Perm Gen space tends to blow up quicker. > > > > Anyway, try throwing a -XX:MaxPermSize=256m on your JVM startup and > see > > if that helps. > > > > Note: if you're actually running out of PermGen space, you'll see a > > reference to that in your OOME. If you are just getting plain old > > OOMEs, it sounds like something more sinister. > > > > HTH, > > Tom > > > > > My JVM is complaining about heap space, so I fear that it is > something sinister... > >10:36:23,289 ERROR [MusiController4]:253 - > Servlet.service() for servlet MusiController4 threw exception >java.lang.OutOfMemoryError: Java heap space > > > ~Arjan Verstoep > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: OutOfMemoryError after serving N pages
If you're using Tomcat and have access to the startup scripts, I'd suggest turning on JMX so that you can have a look inside the memory heaps using jconsole. To do this add a line to tomcat/bin/startup.sh just before the exec at the end: export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9098 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" (Note that this assumes an internal dev box, as there's no ssl or authentication turned on.) You can then connect to it with jconsole (in your java install's bin directory). The next step would be some more automated profiling, but just visually looking at the state of the heaps during a load test can be quite helpful. > -Original Message- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > Sent: 22 February 2007 13:22 > To: users@tapestry.apache.org > Subject: RE: OutOfMemoryError after serving N pages > > Yeah, that is more sinister. > > Try dropping a lambdaprobe.war in your container and watching > what happens to your app as you serve up N pages. > > It isn't as detailed as JProbe or anything like that, but > you'll be up and running in 5 minutes and it may give you a > better overview of your runtime environment and any resource > constraints you may unknowingly have. > > http://www.lambdaprobe.org/d/index.htm > > > Tom > > -Original Message- > From: Arjan Verstoep [mailto:[EMAIL PROTECTED] > Sent: Thursday, February 22, 2007 8:15 AM > To: Tapestry users > Subject: Re: OutOfMemoryError after serving N pages > > [EMAIL PROTECTED] wrote: > > We had the same thing, and in our case it was related to a small > PermGen > > Space setting in our Tomcat container. > > > > My understanding of the Sun JVM is that it partitions up > its allocated > > memory into heap, perm gen, etc. chunks and that the Perm > Gen space is > > where all "meta data" about classes gets stored. In "modern" JEE > > programming with all the CGLIB and just-in-time abstract class > overrides > > & instantiation, the Perm Gen space tends to blow up quicker. > > > > Anyway, try throwing a -XX:MaxPermSize=256m on your JVM startup and > see > > if that helps. > > > > Note: if you're actually running out of PermGen space, you'll see a > > reference to that in your OOME. If you are just getting plain old > > OOMEs, it sounds like something more sinister. > > > > HTH, > > Tom > > > > > My JVM is complaining about heap space, so I fear that it is > something sinister... > >10:36:23,289 ERROR [MusiController4]:253 - > Servlet.service() for servlet MusiController4 threw exception >java.lang.OutOfMemoryError: Java heap space > > > ~Arjan Verstoep > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: OutOfMemoryError after serving N pages
Yeah, that is more sinister. Try dropping a lambdaprobe.war in your container and watching what happens to your app as you serve up N pages. It isn't as detailed as JProbe or anything like that, but you'll be up and running in 5 minutes and it may give you a better overview of your runtime environment and any resource constraints you may unknowingly have. http://www.lambdaprobe.org/d/index.htm Tom -Original Message- From: Arjan Verstoep [mailto:[EMAIL PROTECTED] Sent: Thursday, February 22, 2007 8:15 AM To: Tapestry users Subject: Re: OutOfMemoryError after serving N pages [EMAIL PROTECTED] wrote: > We had the same thing, and in our case it was related to a small PermGen > Space setting in our Tomcat container. > > My understanding of the Sun JVM is that it partitions up its allocated > memory into heap, perm gen, etc. chunks and that the Perm Gen space is > where all "meta data" about classes gets stored. In "modern" JEE > programming with all the CGLIB and just-in-time abstract class overrides > & instantiation, the Perm Gen space tends to blow up quicker. > > Anyway, try throwing a -XX:MaxPermSize=256m on your JVM startup and see > if that helps. > > Note: if you're actually running out of PermGen space, you'll see a > reference to that in your OOME. If you are just getting plain old > OOMEs, it sounds like something more sinister. > > HTH, > Tom > > My JVM is complaining about heap space, so I fear that it is something sinister... 10:36:23,289 ERROR [MusiController4]:253 - Servlet.service() for servlet MusiController4 threw exception java.lang.OutOfMemoryError: Java heap space ~Arjan Verstoep - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: OutOfMemoryError after serving N pages
[EMAIL PROTECTED] wrote: We had the same thing, and in our case it was related to a small PermGen Space setting in our Tomcat container. My understanding of the Sun JVM is that it partitions up its allocated memory into heap, perm gen, etc. chunks and that the Perm Gen space is where all "meta data" about classes gets stored. In "modern" JEE programming with all the CGLIB and just-in-time abstract class overrides & instantiation, the Perm Gen space tends to blow up quicker. Anyway, try throwing a -XX:MaxPermSize=256m on your JVM startup and see if that helps. Note: if you're actually running out of PermGen space, you'll see a reference to that in your OOME. If you are just getting plain old OOMEs, it sounds like something more sinister. HTH, Tom My JVM is complaining about heap space, so I fear that it is something sinister... 10:36:23,289 ERROR [MusiController4]:253 - Servlet.service() for servlet MusiController4 threw exception java.lang.OutOfMemoryError: Java heap space ~Arjan Verstoep - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: OutOfMemoryError after serving N pages
We had the same thing, and in our case it was related to a small PermGen Space setting in our Tomcat container. My understanding of the Sun JVM is that it partitions up its allocated memory into heap, perm gen, etc. chunks and that the Perm Gen space is where all "meta data" about classes gets stored. In "modern" JEE programming with all the CGLIB and just-in-time abstract class overrides & instantiation, the Perm Gen space tends to blow up quicker. Anyway, try throwing a -XX:MaxPermSize=256m on your JVM startup and see if that helps. Note: if you're actually running out of PermGen space, you'll see a reference to that in your OOME. If you are just getting plain old OOMEs, it sounds like something more sinister. HTH, Tom -Original Message- From: Arjan Verstoep [mailto:[EMAIL PROTECTED] Sent: Thursday, February 22, 2007 5:55 AM To: Tapestry users Subject: OutOfMemoryError after serving N pages Hi, I'm building an application with the Tapestry 4.0.2 framework, which manages my music-collection. I'm getting OutOfMemoryErrors since I've created a small ajax-ish component that refreshes every 10 seconds to show the song that is currently playing. A piece of javascript gets the Tapestry-page with the currently-playing song on it, and puts the generated html into a . After 24 hours or so making these page-requests, an out of memory error occurs. I have the feeling that this new auto-refreshing component of mine only quickens the OutOfMemoryError, since I did get these errors before, but only after much longer uptimes. What am I doing wrong here? Is it the Spring OpenSessionInView-filter that I use that is wasting memory, am I not cleaning-up everything myself? Should I use Tapestry 4.1.1? Can anybody help? The code of the page follows: (You can also have a look at http://musicontroller.cvs.sourceforge.net/musicontroller/ for more sourcecode) Thanks, ~Arjan Verstoep public abstract class CurrentlyPlaying extends BasePage { public abstract SessionUserState getSessionUserState(); public abstract Dao getDao(); private Song _song = null; public Song getCurrentSong() { if (_song==null) { _song = getDao().getSongById(getSessionUserState().getDJ().getCurrentSongId()); } return _song; } public void finishLoad() { super.finishLoad(); _song = null; } } http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd";> - - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]