But what do you mean by the stack trace showing that "fine so where is it
caught up and not resolving"?

A stack trace in and of itself isn't valuable. You need to see it over time.
You also said, "I also monitored several of the long running threads (around
2 minutes) and capture several stack traces. They were all the same."

So do you really mean they all (what? All request running? And over several
thread dumps) showed being stuck with " at
java.util.HashMap.get(HashMap.java:325)" being the first line in the stack
trace? If not, then you've not really got anything to conclude from the
stack traces. 

Sorry if it sounds like I'm being contentious.  I just don't know what you
do or don't understand about all this, so am going only on your words. 

As for the sudden burden of processing at startup, that could indeed be from
a bunch of requests all coming in at once. Perhaps you could queue them up
in such a case. There's no built-in singleton processing in CF, but you
could use CFLOCK surrounding some troublesome code that you permit to only
run one at a time, but your problem is that you only want to do it at
startup, or when things are going bad, so you need to use something other
than CFLOCK. You could code something in CFML, though, that acts like a
singleton (only let one request at a time run this during a period you
detect as a trouble time). Just thinking off the top of my head here.

But I'll share one other thought: others who experience slow startup times
often find that it's because that flush of new requests is triggering a lot
of java class loading, and there's a known issue in the JVM 1.6 version
implemented with CF. Some moved back to 1.5 to solve it, while others
updated to 1.6.10 (which fixed the problem) to make it go away. Have you
tried either? 

There are various blogs about this. The first here explains the problem and
how to do it:

http://www.ghidinelli.com/2008/08/18/java16-u10-gives-big-boost-to-modelglue
-transfer-coldspring-performance

Others with more other detail are:

http://www.compoundtheory.com/?action=displayPost&ID=270

http://corfield.org/blog/index.cfm/do/blog.entry/entry/Java_6_and_ColdFusion
_8

Hope that's helpful.

/charlie


-----Original Message-----
From: cfaussie@googlegroups.com [mailto:cfaus...@googlegroups.com] On Behalf
Of Matthew
Sent: Wednesday, January 14, 2009 1:30 AM
To: cfaussie
Subject: [cfaussie] Re: JRUN hanging


Hi guys

We've just a server "hang". It was a little different to usual
(perhaps because Fusion Reactor is installed). This time the website
was showing the JRun error message. When I looked at the JRun process
the RAM was up at 615MB!!! I restarted JRun.exe. As the website came
back up it started to chock again. There is obviously extra load as
all the objects, web services etc run for the first time. I know that
with the 3rd party web service which I've spoken of in previous posts
that always the first call takes a good couple of minutes.
Unfortunately when it happens on the live server you usually get at
least half a dozen users trying to hit the page which consumes this
web service so all requests take a long time and chew up a lot of
resources. I was watching things through FR and the Task Manager: the
CPU was up near 100% plus the RAM was quite high (it normally sits
around 200Mb but was 350+). Meanwhile I couldn't even hit a very light
weight page on the site. I used the KILL feature in FR to terminate
about 20 threads and eventually the CPU usage and RAM dropped down to
stable levels.

I also monitored several of the long running threads (around 2
minutes) and capture several stack traces. They were all the same.
Perhaps someone will be able to explain it to me so I can understand
what I'm reading. For example I read the below that the CFINVOKE was
fine so where is it caught up and not resolving?

at java.util.HashMap.get(HashMap.java:325)
        at org.apache.axis.utils.JavaUtils.isEnumClass(JavaUtils.java:1040)
        at org.apache.axis.encoding.ser.BeanSerializerFactory.init
(BeanSerializerFactory.java:49)
        at org.apache.axis.encoding.ser.BeanSerializerFactory.
(BeanSerializerFactory.java:42)
        at org.apache.axis.encoding.ser.BaseSerializerFactory.createFactory
(BaseSerializerFactory.java:235)
        at org.apache.axis.client.Call.registerTypeMapping(Call.java:2296)
        at
com.raileurope.web.ws.soap.RailEuropeWebServiceSoapBindingStub.createCall
(RailEuropeWebServiceSoapBindingStub.java:2454)
        - locked <0x1534d630> (a
com.raileurope.web.ws.soap.RailEuropeWebServiceSoapBindingStub)
        at
com.raileurope.web.ws.soap.RailEuropeWebServiceSoapBindingStub.doBuildPackag
eForCityPair
(RailEuropeWebServiceSoapBindingStub.java:2663)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at coldfusion.xml.rpc.ServiceProxy.invokeImpl(ServiceProxy.java:223)
        at coldfusion.xml.rpc.ServiceProxy.invoke(ServiceProxy.java:143)
        at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1594)
        at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:388)
        at cfen_p2p2ecfc1610607676$funcSEARCHP2P.runFunction(C:\Inetpub
\wwwroot\model\search.cfc:423)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344)
        at coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
        at coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke
(UDFMethod.java:290)
        at coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:254)
        at coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:56)
        at coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207)
        at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:169)
        at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:194)
        at coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:146)
        at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1634)
        at cfpoint2dto2dpoint2ecfm401551261.runPage(C:\Inetpub\wwwroot
\search.cfm:33)
        at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
        at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
        at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
        at
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:
225)
        at coldfusion.filter.RequestMonitorFilter.invoke
(RequestMonitorFilter.java:51)
        at coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
        at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:69)
        at coldfusion.filter.BrowserDebugFilter.invoke
(BrowserDebugFilter.java:52)
        at coldfusion.filter.ClientScopePersistenceFilter.invoke
(ClientScopePersistenceFilter.java:28)
        at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
        at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
        at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:
22)
        at coldfusion.filter.RequestThrottleFilter.invoke
(RequestThrottleFilter.java:115)
        at coldfusion.CfmServlet.service(CfmServlet.java:107)
        at coldfusion.bootstrap.BootstrapServlet.service
(BootstrapServlet.java:78)
        at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
        at com.intergral.fusionreactor.filter.FusionReactorFilter.B(Unknown
Source)
        at com.intergral.fusionreactor.filter.FusionReactorFilter.A(Unknown
Source)
        at com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter
(Unknown Source)
        at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
        at jrun.servlet.FilterChain.service(FilterChain.java:101)
        at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)
        at
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
        at jrun.servlet.JRunRequestDispatcher.invoke
(JRunRequestDispatcher.java:257)
        at jrun.servlet.ServletEngineService.dispatch
(ServletEngineService.java:541)
        at jrun.servlet.jrpp.JRunProxyService.invokeRunnable
(JRunProxyService.java:204)
        at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable
(ThreadPool.java:318)
        at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable
(ThreadPool.java:426)
        at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable
(ThreadPool.java:264)
        at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

By the way: this doesn't really reflect what I raised in my first
thread because this shows what happen straight after a CF restart
where as the original issue happens when everything is stable and then
suddenly CF hangs. I'm still waiting for that to happen.

Cheers
Matthew




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to cfaussie@googlegroups.com
To unsubscribe from this group, send email to 
cfaussie+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/cfaussie?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to