Skip to main content
Participating Frequently
February 25, 2011
Answered

bogus java.lang.outofmemory?

  • February 25, 2011
  • 2 replies
  • 3118 views

I've been searching around but can't find anyone else with our problem.

I'm getting java.lang.outofmemory errors when doing a file upload from our CMS (Mura).  The thing is we have plentey of free memory (as seen through the server monitor).  While the CMS is something of a black box to me I have followed the basic steps and they are doing a cffile upload then the cffile write, with a few other steps in between such as saving the file name to the Oracle database.

Just throwing this out to this forum in case someone has run across this themselves and there is a known isssue/fix for it.

We run windows2003/iis6/cf8.0.1 - jrun in a cluster.  Applied CHF4.

Strangely we don't have this problem on our test server, just the production server.  This obvisously screams server settings/differences but the only differences I see are that we have more memory on the production servers.  We attempt to keep the envoronments as close to identical as possible.


Many thanks to anyone who can solve this for me or point me in the right direction for my own investigations.

Here is a copy of the error dump in case it helps.

java.lang.OutOfMemoryError at java.io.FileOutputStream.writeBytes(Native Method)  at java.io.FileOutputStream.write(FileOutputStream.java:247) at  coldfusion.tagext.io.FileTag.createNewFile(FileTag.java:917) at  coldfusion.tagext.io.FileTag.write(FileTag.java:340) at  coldfusion.tagext.io.FileTag.doStartTag(FileTag.java:272) at  cffileWriter2ecfc1211804041$funcWRITEFILE.runFunction(E:\www\docs\cpm.com\requirements\mura\fileWriter.cfc:54)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222) at  cffileDAO2ecfc1285135436$funcCREATE.runFunction(E:\www\docs\cpm.com\requirements\mura\content\file\fileDAO.cfc:98)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cffileManager2ecfc208316460$funcCREATE.runFunction(E:\www\docs\cpm.com\requirements\mura\content\file\fileManager.cfc:82)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfdataCollectionManager2ecfc186340268$funcUPDATE.runFunction(E:\www\docs\cpm.com\requirements\mura\content\dataCollection\dataCollectionManager.cfc:113)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfact_add2ecfm2125518853.runPage(E:\www\docs\cpm.com\cpm\includes\display_objects\custom\datacollection\act_add.cfm:131)  at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196) at  coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483) at  coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2661) at  cfindex2ecfm1407877656.runPage(E:\www\docs\cpm.com\cpm\includes\display_objects\custom\datacollection\index.cfm:117)  at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196) at  coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483) at  coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2661) at  cfcontentRenderer2ecfc1971596901$funcDSPOBJECT_INCLUDE.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentRenderer.cfc:846)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471) at  cfcontentRenderer2ecfc1971596901$funcDSPOBJECT_RENDER.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentRenderer.cfc:812)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471) at  cfcontentRenderer2ecfc1971596901$funcDSPOBJECT.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentRenderer.cfc:889)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471) at  cfcontentRenderer2ecfc1971596901$funcDSPOBJECTS.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentRenderer.cfc:944)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfcareer2ecfm2111145466.runPage(E:\www\docs\cpm.com\cpm\includes\themes\cpm\templates\career.cfm:132)  at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196) at  coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483) at  coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2661) at  cfstandardHTMLTranslator2ecfc1403613745$funcTRANSLATE.runFunction(E:\www\docs\cpm.com\requirements\mura\Translator\standardHTMLTranslator.cfc:35)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222) at  cfgenericEventWrapper2ecfc1134064712$funcTRANSLATE.runFunction(E:\www\docs\cpm.com\requirements\mura\generic\genericEventWrapper.cfc:64)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfstandardTranslationHandler2ecfc1961271264$funcHANDLE.runFunction(E:\www\docs\cpm.com\requirements\mura\Handler\standardTranslationHandler.cfc:27)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222) at  cfgenericEventWrapper2ecfc1134064712$funcHANDLE.runFunction(E:\www\docs\cpm.com\requirements\mura\generic\genericEventWrapper.cfc:50)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfstandardDoResponseHandler2ecfc176819771$funcHANDLE.runFunction(E:\www\docs\cpm.com\requirements\mura\Handler\standardDoResponseHandler.cfc:68)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222) at  cfgenericEventWrapper2ecfc1134064712$funcHANDLE.runFunction(E:\www\docs\cpm.com\requirements\mura\generic\genericEventWrapper.cfc:50)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfservlet2ecfc1394341134$funcDOREQUEST.runFunction(E:\www\docs\cpm.com\requirements\mura\servlet.cfc:81)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfMura2ecfc1759860689$funcDOREQUEST.runFunction(E:\www\docs\cpm.com\requirements\mura\Mura.cfc:59)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfcontentServer2ecfc1373717594$funcPARSEURL.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentServer.cfc:212)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471) at  cfcontentServer2ecfc1373717594$funcPARSEURLROOT.runFunction(E:\www\docs\cpm.com\requirements\mura\content\contentServer.cfc:258)  at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418) at  coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47) at  coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:360) at  coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:324)  at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:59)  at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277) at  coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448) at  coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308) at  coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272) at  cfcontentServerRoot2ecfm1752516954.runPage(E:\www\docs\cpm.com\tasks\content\contentServerRoot.cfm:43)  at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196) at  coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483) at  coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2661) at  cfindex2ecfm2082716833.runPage(E:\www\docs\cpm.com\index.cfm:44) at  coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196) at  coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:483) at  coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65) at  coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:282) at  coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at  coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at  coldfusion.filter.PathFilter.invoke(PathFilter.java:86) at  coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at  coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)  at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38) at  coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46) at  coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38) at  coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22) at  coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)  at coldfusion.CfmServlet.service(CfmServlet.java:198) at  coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89) at  jrun.servlet.FilterChain.doFilter(FilterChain.java:86) at  coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)  at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46) at  jrun.servlet.FilterChain.doFilter(FilterChain.java:94) at  jrun.servlet.FilterChain.service(FilterChain.java:101) at  jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106) at  jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42) at  jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:286) at  jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at  jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at  jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at  jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

    This topic has been closed for replies.
    Correct answer carl type3

    Hi,

    >192m which seems like plenty of memory?

    Sometimes it is sometimes it isn’t. Depends on the type of java objects getting loaded. If there are the likes of many class files well 192m can be consumed. One way of knowing is to do some JVM logging or use Jconsol or Jvisualvm which are both part of Java Dev Kit.

    >I provided the error dump above and it does not show permgen to be the issue.

    Yes I agree does not look overly like a PermGen error however sometimes errors can be “second hand” what Java “thinks” is going wrong.

    >don't have this problem on our test server, just the production server.

    That’s why I thought PermGen may be the issue being the difference in load.


    So as I say I may well not be on track but I think no harm in trying as one of two things will happen either the problem will go away or still be there. It is probably better to “look” with some logging or JDK tools though you could just make a guess at it. So if you like the idea to guessing replace this:
    -XX:MaxPermSize=192m
    With:
    -XX:PermSize=148m -XX:MaxPermSize=256m
    After taking backup copy first. Restart CF for changes to apply.

    One other note Java on 32 bit has a maximum limit just over 1.4Gb. With Xmx1300m and the other memory buffers PermGen CodeCache and so on it is not hard to run over the 1.4Gb limit. I mention it tho is not your problem since you point out RAM used bu Jrun.exe is mostly below 1Gb.

    HTH, Carl.

    2 replies

    Inspiring
    March 1, 2011
    Strangely we don't have this problem on our test server, just the production server.  This obvisously screams server settings/differences but the only differences I see are that we have more memory on the production servers.

    Well the other difference I would expect to be a major - probably the most significant - factor here would be load.  I presume your production server is busier than your test server?  Even if you load test your test server (something CF devs usually forget to do), the load patterns are likely to be different than "real world" ones.

    Rather than play guesswork as to what's going on with your RAM, you could just check.  Run JConsole or FusionReactor or SeeFusion or I think even CF comes with some server metric monitoring stuff these days.  That way you can check what process is taking up your resources.

    I've used FusionReactor - which is brilliant - and JConsole.  I tried using SeeFusion but found it a bit limp compared to FusionReactor.  And have not used the inbuilt CF stuff.  But they'll all do the trick.

    --

    Adam

    Participating Frequently
    March 1, 2011

    Adam Cameron. wrote:

    Strangely we don't have this problem on our test server, just the production server.  This obvisously screams server settings/differences but the only differences I see are that we have more memory on the production servers.

    Well the other difference I would expect to be a major - probably the most significant - factor here would be load.  I presume your production server is busier than your test server?  Even if you load test your test server (something CF devs usually forget to do), the load patterns are likely to be different than "real world" ones.


    I agree that the obvious difference with a test and production server would be load which is pretty much the first thing I looked at.  I've already indicated that I used the Server Monitor utility (comes with cf8) to view memory usage during these failed file writes on 4mb-100mb files and saw no unusual memory spikes at all.  Generally we were running at jvm heap sizes of 300mb out of 400mb allocated (1300mb max) when I did my testing.  So overall memory can't be the issue.

    Thanks for the suggestions and keep them comming.  I'm hoping someone may suggest something that I have not tried yet.

    Inspiring
    March 1, 2011
    Generally we were running at jvm heap sizes of 300mb out of 400mb allocated (1300mb max) when I did my testing.  So overall memory can't be the issue.

    The thing is, the JVM ain't gonna give you an out of memory error if it's not out of memory.  It might look like there's plenty of memory, but there clearly isn't.  To me this suggests the analysis tool is reporting the situation wrong, not that Java is getting its own memory usage wrong.

    Maybe have a look @ it with JConsole too... that is ignoring anything to do with CF (and the CF monitoring might be doing something dumb...), and just looking directly @ the Java memory usage.  Don't just focus on the heap, either.

    --

    Adam

    BKBK
    Community Expert
    Community Expert
    February 26, 2011

    ... a cffile upload then the cffile write ...

    Writing a large file can cause the Java Virtual Machine to run out of memory.

    Participating Frequently
    February 28, 2011

    Thanks for reading my post and responding.

    As I stated initially when monitoring memory usage I saw no unusual spike.  We have JVM memory set to max (about 1.3gb).  We do occasiaonlly get spikes and legitimate memory issues but average usage is around 300-500mb.  Error occurs on files as small as 4mb being uploaded.  You do the math.

    I was hoping there was some other CF setting that could be causing this. Or maybe even IIS or the windows OS.

    Notable CF settings:

      MB
    Limits the amount of data that can be posted to the server in a single  request. ColdFusion rejects requests larger than the specified limit.

      MB
    Requests smaller than the specified limit are not handled by the throttle.

      MB
    Limits total memory size for the throttle.      ColdFusion queues requests if there is not enough total memory available.      Any request larger than this limit will not be processed.

    Request Limits

    The number of CFML page requests that can be processed concurrently. Use this setting to increase overall      system performance for heavy load applications. Requests beyond the specified limit are queued.

    The number of Flash Remoting requests that can be processed concurrently.

    The number of Web Service requests that can be processed concurrently.

    The number of ColdFusion Component methods that can be processed concurrently via HTTP.      This does not affect invocation of CFC methods from within CFML, only methods requested via      an HTTP request.

    JRun Master Request Limits (restart required)

    Maximum number of JRun handler threads that will run concurrently.           This is the number of request threads that the underlying JRun J2EE application server           will run at the same time.  This includes any non-ColdFusion requests such as JSP pages.           Generally this value should be greater than the sum (currently 80) of the request limits above .

    Maximum number of requests that JRun can accept at any one time.           This is the number of requests that the underlying JRun J2EE application server accepts at the same time.

    Tag Limit Settings

    The maximum number of ColdFusion reports that can be processed concurrently.

    The maximum number of threads created by CFTHREAD that will be run concurrently.      Threads created by CFTHREAD in excess of this are queued.

    Queue Timeout Settings
    seconds
    If a request has waited in the queue for this long, timeout the request.      This value should be at least as long as the Request Timeout      setting (currently 360 seconds).


    Specify a relative path from the web root to an HTML page to send to clients when a template request times out before running, for example /CFIDE/timeout.html. The page you specify cannot contain CFML. If you do not specify a page, clients receive a 500 Request Timeout error when their request does not run.
    BKBK
    Community Expert
    Community Expert
    February 28, 2011

    It is apparently caused by the way Mura handles the particular file-write operation on line 54 of the CFC. One suggestion in this Mura forum is to increase the file-size setting for IIS.