if your request is timing out when outputting the ...
# cfml-general
w
if your request is timing out when outputting the response i'd say you have bigger problems than worrying about threads, namely, why does your cfoutput take longer than 180 seconds or whatever it is to finish
s
so a possibility of database taking more time to return results if that is the case, then can't i catch the timout and just display a friendly error message and just do a reset, so those things don't add up in GC and should not end up 9in heap space issues
m
the problem is, you're talking about heaps and garbage collection and threads and whether or not you can properly handle a timeout, and you have no idea where the actual performance issue is. (EDIT: or, at least, you haven't conveyed the actual core issue very well)
g
Can you add you heap space error stacktrace
s
here
Copy code
coldfusion.runtime.RequestTimedOutException: The request has exceeded the allowable time limit Tag: cfoutput
	at coldfusion.tagext.io.OutputTag.doStartTag(OutputTag.java:94)
	at cfHeader_Full2ecfm1871516921.runPage(D:\Header_Full.cfm:267)
	at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:257)
	at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749)
	at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578)
	at coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:5201)
	at cfTForm2ecfm1068690040.runPage(D:\TForm.cfm:2)
	at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:257)
	at coldfusion.tagext.lang.IncludeTag.handlePageInvoke(IncludeTag.java:749)
	at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:578)
	at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
	at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:613)
	at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:43)
	at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
	at coldfusion.filter.PathFilter.invoke(PathFilter.java:162)
	at coldfusion.filter.IpFilter.invoke(IpFilter.java:45)
	at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:97)
	at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
	at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
	at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:60)
	at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
	at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
	at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
	at coldfusion.CfmServlet.service(CfmServlet.java:231)
	at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:311)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:46)
	at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:47)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:377)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:463)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)
w
that's not specific to cfoutput, and there are no 'timeout' controls for it. it simply means your response did not successfully complete in the allowed timespan you can increase that time by using cfsetting requiresttimeout="xxx" or you can not send monster multi-megabyte responses back to the browser/client
the request timed out while it was in the middle of cfoutputting data is all the above means