Friday, May 16, 2014

ColdFusion 11 and IIS 8+ Woes

If for any reason you seem to be banging your head against the wall because you installed ColdFusion 11 on a Windows OS with IIS 8+ (Windows 8 or Server 2012) and are dealing with a first request delay that is unexplainably long 12-15 secs than don't worry you are not alone.

I created the following bug in Adobe's bug base and today an engineer called me and confirmed the issue from the details I emailed. The issue is basically as follows.

The first request to ColdFusion after any of the following events cause a delay of 12+ seconds, after that everything works great. The events that cause this issue are as follows:

  1. Restart ColdFusion
  2. Recycle an App Pool in IIS
  3. Restart IIS from GUI or Command iisreset
  4. Edit a Web.Config file (recycle the App Pool)
Just to make sure it was not OS specific I enabled the embedded web server and installed Apache on one of my Windows VMs and the issue did not exists in either. On my Mac I did not experience the issue either so in the end it appears it is an issue with the connector and IIS App Pool timeout or recycles.

The engineer did state he was able to replicate and they will start working on it on Monday May 19th. If you ran into this post thru a search I will make sure to update or follow the bug I linked to above.

I also noticed that my ehcache files are now created at the root of my site if I am using secondary cache in an ORM app which I will be submitting another bug for.

The issues above occurred for me in the following configurations.
  • Windows 8.1 w/ IIS 8.5
  • Server 2012 w/ IIS 8
  • Server 2012 R2 w/ IIS 8.5
* Slow Initial Request on IIS 8 w/ ColdFusion 11

Monday, May 05, 2014

ORM Event Handling and ColdFusion 11

If you are banging your head against the wall because your new install of ColdFusion 11 is crashing your app and you are using ORM Event Handling all you need to do is update your CFC with 2 new functions introduced in 11. These functions are as follows:

public void function preFlush(any entities){};
public void function postFlush(any entities){};

Thank you CF Engineers for making this such a fun Monday. That is sarcasm in case you guys do not understand it.