Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

ScheduleTasks.cfm throwing error

Contributor ,
Nov 04, 2008 Nov 04, 2008
I have been looking at the exception.log, and found the following error (a few times):

"Error","jrpp-46","10/10/08","18:13:07","cfadmin","The request has exceeded the allowable time limit Tag: cfoutput The specific sequence of files included or processed is: E:\inetpub\Wwwroot\CFIDE\administrator\scheduler\scheduletasks.cfm, line: 34 "
coldfusion.runtime.RequestTimedOutException: The request has exceeded the allowable time limit Tag: cfoutput
at coldfusion.tagext.io.OutputTag.doStartTag(OutputTag.java:149)
at cfheader2ecfm1394350669.runPage(E:\cf8_final\cfusion\wwwroot\CFIDE\administrator\header.cfm:34)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
at coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:2640)
at cfscheduletasks2ecfm400813038._factor9(E:\cf8_final\cfusion\wwwroot\CFIDE\administrator\scheduler\scheduletasks.cfm:115)
at cfscheduletasks2ecfm400813038.runPage(E:\cf8_final\cfusion\wwwroot\CFIDE\administrator\scheduler\scheduletasks.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192)
at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366)
at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
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.CfmServlet.service(CfmServlet.java:175)
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:284)
at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

I've never seen an error on a packaged module, and I am unable to view the ScheduleTasks.cfm program. Any ideas?
4.2K
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Nov 07, 2008 Nov 07, 2008
Right, well, it's a reasonable conclusion, but the fact is that despite those timeouts, CF cannot interrupt requests that are doing interactions with remote processes (whether queries, or CFHTTP operations, etc.) And it doesn't matter if you set the timeout in the admin or in the CFSETTING.

Now, if you set the timeout on a CFHTTP, that does set CF to watch the request and if it doesn't get a response in time, then it can interrupt that. The same option was added to CFINVOKE in CF 7 for calling ...
Translate
Community Expert ,
Nov 05, 2008 Nov 05, 2008
Libby, I would suspect that all this is saying is that whatever the scheduled task was you were trying to run took too long and exceed the "timeout requests" setting in your CF Admin. The error on the CFOUTPUT is a classic one: it leads one to think, "how could a CFOUTPUT exceed the time limit?", but in fact what's happening is that the tag that preceded it is what took too long.

What happens is that CF can't timeout requests that are in native threads (a java technicality). What that translates to is that things like CFQUERY, CFHTTP, CFINVOKE of a web service, etc, which talk to external resources, can't be interrupted, so that when the requests returns and proceeds to the next tag (often a CFOUTPUT, or perhaps a CFDUMP which reports as the same thing), it THEN reports that THAT tag is what exceeded the timeout.

Anyway, since under the covers scheduled tasks do a CFHTTP to execute whatever URL was listed (even if it's local to the same server), I would suspect that it was the CFHTTP that took too long.

Now, if this were code you owned, I'd say add a TIMEOUT attribute to the CFHTTP (or CFINVOKE or CFQUERY, though it's not always honored for the latter).

But since this is a scheduled task, you're right that you can't edit the code. But the good news is that the scheduled task interface in the CFADMIN (as well as the CFSCHEDULE tag) does offer a timeout option.

Hope that helps.

/Charlie (troubleshooter, carehart. org)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Nov 07, 2008 Nov 07, 2008
Thanks so much for your reply. It does make sense that the task is long running, but I have a TimeOut on the insert query and a 'cfsetting requestTimeOut' on the job. It is interesting that the job runs without errors and quickly on my test server, but has problems on my production server (test and production environments are identical - Windows 2003 R2 SP2, CF8 Enterprise, Sql Server 2000). Must be the additional users on the production server.

I never really noticed the Timeout (sec) parameter on scheduled tasks. Will putting a Timeout on the scheduled task override the RequestTimeOut I have on the job itself?

Thanks again.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 07, 2008 Nov 07, 2008
Right, well, it's a reasonable conclusion, but the fact is that despite those timeouts, CF cannot interrupt requests that are doing interactions with remote processes (whether queries, or CFHTTP operations, etc.) And it doesn't matter if you set the timeout in the admin or in the CFSETTING.

Now, if you set the timeout on a CFHTTP, that does set CF to watch the request and if it doesn't get a response in time, then it can interrupt that. The same option was added to CFINVOKE in CF 7 for calling web services. And you mention putting the timeout on the CFQUERY, and you'd think that should work, but sadly I've seen plenty of cases where it did not.

Now, the case of a scheduled task, again it operates like a CFHTTP, and so just as you can set a timeout for it, you can do it in the scheduled task and it passes through.

So look at it this way: if the thing that is being called by the scheduled task is itself on the same CF server, and it doesn't run in the task's timeout time, CF will stop the schedule task from waiting for it to finish. As for the request that was called, it will still run, since CF can't interrupt it, but it won't have its client there (the scheduler) to send its response to.

Hope that helps.

/Charlie (troubleshooter, carehart. org)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Nov 10, 2008 Nov 10, 2008
I was able to set the timeout on the scheduled task and the processed ended without errors! Thanks so much for your insight.
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Nov 10, 2008 Nov 10, 2008
LATEST
Glad I could help, Libby.

/Charlie (troubleshooter, carehart. org)
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources