Which IIS settings will allow me to process long-running ColdFusion requests without IIS giving up?
I have a web site that allows users to select some checkbox settings, save them as reports in a database, and come back to run them at any time.
Some of these saved reports can take a little over five (5) minutes to complete. Sometimes they run O.K. Other times they will leave the browser hanging with "waiting for http...". While monitoring the web server I see that the CPU drops off after about 5 minutes 30 seconds of sustained 50% 开发者_开发百科CPU.
I am experienced and have tweaked MANY settings in many places over the years! I have exhausted my search of all timeout settings that could possibly prevent IIS from giving up on long-running requests. Any ideas?
My Environment...
- ColdFusion 8.0.1 (JRun)
- IIS 6.0 (DefaultAppPool, Default Application,
- Windows Server 2003 R2 Standard SP 2
Settings I have Tried To Tweak With No Luck...
ColdFusion...
<cfset this.sessionTimeout = createTimeSpan(0,2,0,0)>
<cfsetting requesttimeout="4800">
ColdFusion Administrator...
- Timeout requests after 600 seconds
- Timeout requests waiting in queue after 600 seconds
IIS Default Web Site Properties...
- Conection timeout: 120 + Yes: Enable HTTP Keep-Alives
- Application Pool: DefaultAppPool
- Application Configuration Options Tab: Enable Session State: Yes; Session Timeout: 20 minutes;
Default App Pool Properties...
- Recycling: 1740 minutes
- Idle Timeout: Shutdown worker processes after... 20 minutes
- Health: Enable pinging: yes every 30 seconds
- Enable rapid-fail protection: no (I also tried: yes, Failuters: 5 minutes, Time Period: 5 minutes
- Startup time limit: 90 seconds
- Shutdown time limit: 90 seconds
There are a number of places to look for this..
You have not posted the complete setting for the application. Have you checked the default values for application timeout in the Coldfusion administrator ?
What setting have you put in your application.cfc for
this.applicationtimeout =
I am also suspicious that you may have a long running database query. That is the processing on the database side is long running rather than CF consuming time. Maybe you need to check the timeouts in the Coldfusion administrator for the datasource associated with your application.
You may have a lot of data or you may need to optimise your query or even check the indexing of your tables if this is the case.
Hope it helps a little
精彩评论