I've been in a long struggle with the default install of ColdFusion 10. The main issue has been the stability of the product when you are running multiple IIS websites off of one instance of ColdFusion. I don't know why Adobe doesn't build this right into the installer or their connector, but they did post a blog article and here are the changes you need to make to your configuration in order to stop the Tomcat-IIS connector from crashing consistently.
- Change (or add) the following lines in your workers.properties file. That file is located at <cf-installation-path>\config\wsconfig\ in the folder number associated with your website. If you chose ALL websites when installing ColdFusion, then the number is most likely 1.
Two important points here. First, if you created a separate instance of CF then "cfusion" in the lines above should be replaced by your instance name. Second, you should follow this formula for the first two numbers: connections = pool_size / number of iis sites. So, in the example above I have it set for two sites (250 = 500 / 2 sites). If you had 20 sites, you could do something like this…
Adobe's blog post linked above explains more about what these numbers mean. If you did not set ColdFusion to connect to ALL IIS sites when installing, be sure to set these lines for EVERY site that is connected to your instance – each one should have its own number-based folder in the wsconfig folder.
- Edit the server.xml file in <cf-installation-path>\cfusion\runtime\conf (or <cf-installation-path>\<instance-name>\runtime\conf
There is a line that corresponds to the settings above.
<Connector port="8013" protocol="AJP/1.3" redirectPort="8446" tomcatAuthentication="false" maxThreads="500" connectionTimeout=
The last two attributes (in bold) are the items to add. These should directly correspond to the pool_size and pool_timeout settings you entered in the workers.properties file. maxThreads is your pool_size, and connectionTimeout is your pool_timeout times 1000 (it's milliseconds here).
After you have completed these two steps, restart your ColdFusion instance and you should be all set.
Please note that any time you re-run the ColdFusion connector, your workers.properties will get reset and you will have to re-add these settings.
I noticed that the sites I changed these settings on ran MUCH faster than the sites that were running on their own instance. So, I decided to try adding these settings to single-site instances as well. Surprisingly, this drastically sped up ColdFusion's performance. So, for a dedicated server using one IIS website and one instance of ColdFusion I added the following lines.
… and corresponding server.xml file setting…
<Connector port="8013" protocol="AJP/1.3" redirectPort="8446" tomcatAuthentication="false" maxThreads="250" connectionTimeout="60000">
I saw instant and significant performance improvement. I am not entirely sure why, but it probably has something to do with having Tomcat cycle the connection every 60 seconds instead of having them held open.