ColdFusion Muse

Coldfusion 8 Upgrade and FDS

I'm not a huge fan of upgrading software. I have found, in the words of Sam Gamgee's gaffer, that "Short cuts make long delays." In my view you will usually save time troubleshooting by doing a full install rather than an upgrade. Recently we needed to upgrade a customer from Coldfusion 7 to Coldfusion 8. It was a single server installation and we needed a minimum of downtime so, after writing a rollback plan and prepping the server we chose the "upgrade". All seemed to go well. All the data sources, services and settings ported over to the new Coldfusion 8 installation and the server fired up just fine. We thought we were home free until....

FDS Woes

We rolled a new application that made use of the Flex Data Services (now called Lifecycle DS ES or something like that). We had been testing the application on a Coldfusion 8 dev server and we were confident that it worked well and that it would tolerate the load. We rolled it live and watched for any hiccups. What we saw was an immediate increase in processor usage and sudden stability issues. Under load the server would simply freeze up. We set up a restart for every 4 hours (about the limit of the uptime) and starting trying to figure out plan B. Back on the test server we verified that the JVM and other tuning settings were the same. After a day of trying this or that our rope came to an end. The only difference we could find was that the dev serve had been installed "from scratch" and the production server had been "upgraded". We bit the bullet and uninstalled Coldfusion 8 and reinstalled it from scratch.

After reinstallation the processors came down to normal levels and memory assumed a normal pattern of behavior - no more hung Jrun. The point here is that a fresh install is often better than an upgrade. A secondary point is that if you are making use of FDS and on CF 8 and you are having trouble, consider whether or not your installation is an upgrade. Cutting to the chase and reinstalling from scratch might do the trick for you if it is.

As for the diagnosis? I can only assume that some remnant of the CF 7 server or some FDS setting that I missed was brought over with the upgrade. If I knew what it was I could possibly diagnose it and fix it without resulting to a reinstall (which is normally a remedy of last resort).

Steven Erat's Gravatar Mark, although I have'nt heard of similar problems specifically revolving around upgrading and FDS/LCDS, I would like to point out one fine point that may be helpful to LCDS performance.

In CF7 the default channel for FDS was RTMP, which is socket to socket from the Flash Player to the server, bypassing the webserver. In CF8, due to customer requests regarding making LCDS better for firewalled environments, the default channel was changed to AMF Polling with a default poll interval is 8 seconds.

The result would be a noticeable change between nearly instantaneous data synchronization and updates in CF7 without increased webserver load (over RTMP) to slightly delayed updates in the client's Flash player and increased webserver traffic (AMF Polling over HTTP).

At this moment (without checking) I can't recall if upgrading will alter the channels, but if you have LCDS channels currently using AMF Polling you may want to consider using RTMP once again to increase perceived performance in the client. This would require knowning the RTMP port and setting firewall rules to allow incoming requests on that port.
# Posted By Steven Erat | 2/12/08 11:12 AM
Mark Kruger's Gravatar Thanks for helpful advice. I was not aware of that change. But to answer specifically - we did our testing on a CF 8 (full install) server... We never tested the code on a CF 7 server so we would have been unaware of the difference in any case.

Still... Excellent information - thanks!
# Posted By Mark Kruger | 2/12/08 11:19 AM
João Fernandes's Gravatar Mark,

Also don't forget that CF7 ships with FDS 2 when CF8 with 2.5.1. Maybe some updated lib that wasn't upgraded.
# Posted By João Fernandes | 2/12/08 12:37 PM

Blog provided and hosted by CF Webtools. Blog Sofware by Ray Camden.