Hi,
( In case anyone is still subscribed to cfaussie )
I have recently moved some code from cf6 to cf9 enterprise and a particular process consumes all of the resources and hangs the CF server. The exact same code on CF9 standard works okay ( although different windows server version ).
The code is processing HL7 messages ( health messaging, admission, discharge messages etc ) and basically it works in a continuous cfloop, selecting the top 1 message from the database, and calls a bunch of extra pages to process the messages.
My errors look like the following, from the log file:
10/12 14:58:20 error ROOT CAUSE:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.IdentityHashMap.init(IdentityHashMap.java:244)
at java.util.IdentityHashMap.<init>(IdentityHashMap.java:190)
at coldfusion.monitor.memory.MemoryTrackerProxy.registerMemoryTracker(MemoryTrackerProxy.java:182)
at coldfusion.monitor.memory.MemoryTracker.registerWithObject(MemoryTracker.java:222)
at coldfusion.monitor.memory.MemoryTracker.onAddObject(MemoryTracker.java:174)
at coldfusion.monitor.memory.MemoryTrackerProxy.onReplaceValue(MemoryTrackerProxy.java:598)
at coldfusion.monitor.memory.MemoryTrackerProxy.onReplace(MemoryTrackerProxy.java:551)
at coldfusion.runtime.Variable.setInternal(Variable.java:143)
at coldfusion.runtime.Variable.set(Variable.java:71)
at coldfusion.runtime.LocalScope.bindInternal(LocalScope.java:362)
at cfsbbp03_pims_hl72ecfm1750835129$funcHL7LISTGETAT.runFunction(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:86)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)
at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368)
at coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:55)
at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)
at coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2582)
at cfsbbp03_pims_hl72ecfm1750835129._factor7(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:403)
at cfsbbp03_pims_hl72ecfm1750835129._factor16(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:319)
at cfsbbp03_pims_hl72ecfm1750835129._factor17(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:317)
at cfsbbp03_pims_hl72ecfm1750835129._factor24(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:180)
at cfsbbp03_pims_hl72ecfm1750835129._factor26(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:1)
at cfsbbp03_pims_hl72ecfm1750835129.runPage(D:\WWWRoot\HNEPlatypus2\Batch\sbbp03_pims_hl7.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:231)
at coldfusion.filter.CFVariablesScopeFilter.invoke(CFVariablesScopeFilter.java:56)
at coldfusion.tagext.lang.ModuleTag.doStartTag(ModuleTag.java:271)
at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722)
at cfsb_hl7_table_processor2ecfm1950658070._factor6(D:\WWWRoot\HNEPlatypus2\Batch\sb_hl7_table_processor.cfm:552)
at cfsb_hl7_table_processor2ecfm1950658070._factor8(D:\WWWRoot\HNEPlatypus2\Batch\sb_hl7_table_processor.cfm:518)
at cfsb_hl7_table_processor2ecfm1950658070._factor13(D:\WWWRoot\HNEPlatypus2\Batch\sb_hl7_table_processor.cfm:439)
at cfsb_hl7_table_processor2ecfm1950658070._factor14(D:\WWWRoot\HNEPlatypus2\Batch\sb_hl7_table_processor.cfm:1)
at cfsb_hl7_table_processor2ecfm1950658070.runPage(D:\WWWRoot\HNEPlatypus2\Batch\sb_hl7_table_processor.cfm:1)
I have moved the process back to my old server ( cf6 ), but the server admin team would prefer that the server is removed sooner rather than later.
I am contemplating putting another website on the cf9 server and running it from there.
There are few online forums with posts regarding similar problems, which mostly refer to var scoping variables in functions, or are looking at object creation.
I am seeking specific advice regarding what to do in this instance. Any gotcha, quick fixes, things to double check?
--
You received this message because you are subscribed to the Google Groups "cfaussie" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+unsubscribe@googlegroups.com.
To post to this group, send email to cfau...@googlegroups.com.
Visit this group at https://groups.google.com/group/cfaussie.
For more options, visit https://groups.google.com/d/optout.
Scott, my response may surprise you, but hear me out.
The error indicates that you have the CF Enterprise Server Monitor’s “start memory tracking” enabled (see the references to coldfusion.monitor.memory.MemoryTracker). That memory tracking feature has been known to cause problems—and tragically so, because people turn the feature on to understand problems, not realizing that it often causes more (and worse) problems.
And to be clear, this was not something you could have had enabled on CF6, because it came out in CF8. And it may not be that YOU turned this feature on, but perhaps someone else had. And they may even have done it before you moved your code to the server, and perhaps your code is more prone to causing problems with the Memory tracking feature. (Generally the issue is that the more and deeper the objects in memory, the more impact the memory tracking in the CFSM has.)
If you turn this off, and things work find, great (I’ve seen it happen before). But if the process in question still causes issue, we can keep oing.
First, you say that it “consumes all resources”. What mechanism are you using to confirm that? Do you mean that the memory and CPU for CF, as reported in Task Mgr, goes very high? If so, then you want to find out WHY that app does that. And that sounds like where you are, but let’s have you first make sure the CFSM is not the issue.
If the issue is not resolved by turning off the memory tracker, then you will want to use SOME mechanism to understand what is going on (either about the request or about CF, as configured). There are other aspects of that CFSM which could help (some needing the “start monitoring” feature enabled, but some even with no “start” features enabled) to find why the request is running slow and using resources. Better still may be if you had either of the 3rd party CF monitors, FusionReactor or SeeFusion.
But let’s start with hearing what you find about the above.
/charlie
--
You received this message because you are subscribed to the Google Groups "cfaussie" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+u...@googlegroups.com.
Hi,
Simon:
There are a few places where CFFILE ( with an append) is used to log some things, but nothing that I could call a file stream or file handler.
Charlie:
I believe I turned on the memory tracking after the first half-dozen or so server crashes. I’ve turned it off subsequently. ( I have also read of it causing problems).
When the server stops responding to requests, they all have in common a large amount of Memory usage. CPU usage is quite low. I believe that the monitor is not running presently, memory usage is at 3,382MB.
I have used fusion-reactor.com previously on my old servers, and I had hoped I could avoid the cost of current fusion-reactor versions. I have obtained a quote for the new version and will get it installed soon ( hopefully ). I might be able to see if the demo version will work for me.
--
To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+u...@googlegroups.com.
To post to this group, send email to
cfau...@googlegroups.com.
Visit this group at
https://groups.google.com/group/cfaussie.
For more options, visit
https://groups.google.com/d/optout.
--
Kind regards
Simon Haddon
--
You received this message because you are subscribed to the Google Groups "cfaussie" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+u...@googlegroups.com.
To post to this group, send email to cfau...@googlegroups.com.
Visit this group at https://groups.google.com/group/cfaussie.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "cfaussie" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cfaussie+unsubscribe@googlegroups.com.
To post to this group, send email to cfau...@googlegroups.com.
Visit this group at https://groups.google.com/group/cfaussie.
For more options, visit https://groups.google.com/d/optout.