Monday, 19 November 2012

ColdFusion 10 Update 5: mostly smooth

Here's my experience with the new ColdFusion 10 update 5 which was released half an hour or so ago.

I've got four CF10 instances running:
  • The baseline CFUSION one that is the default-installed one. I just use the inbuilt web server on this one;
  • one called "scratch" which I'm using to develop an app on, which has a specifically configured website for it (Apache 2.2)
  • another pair, imaginatively called "clusterNode1" and "clusterNode2". They are in a cluster. Using IIS 7.5.
This is on a Windows 7 Home Premium 64-bit machine.

I usually only have the CFUSION one running, to do all my scratch work in. Don't ask why I decided to do my non-scratch work in the "scratch" instance, and scratch around in the CFUSION instance. I don't know either.

So today this updater came out, and I decided, oh well... nothing ventured, nothing gained, so i just dived in to install the updater. Then I remembered update 4 screwed up my Apache config, so made sure to back-up my Apache config files, my mod_jk.conf file, and my and files too. All three of the latter were screwed up by updater 4.

Having backed everything up, I dived into CFAdmin and opted to download and install the updater.

The first bug I noticed was a trivial UI bug.  Here's the screen for selecting which instances to update:

Note that it has a "Select All" option, but no actual UI control to select all.  Not to worry. I'll raise this with Adobe when I finish writing this (3367866).

I manually selected all my instances, and opted to continue.

After about 5min I checked to see what activity my CF instances were up to (they'd all been started) to gauge if they were still updating or not. Everything was idling, so I figured the update had run.

Here's one thing that annoys me slightly about the update process.  I have all of my ColdFusion services set to "manual" start, because this laptop struggles with too much stuff switched on.  I get how ColdFusion might need to start things up when it's updating,  but once it's done, it should leave the thing as it found it (ie: switched off). This is a small gripe. I've raised bug 3367872 to cover this.

I went into CFAdmin on each server (via the inbuilt webserver, as I had not redone the web server connectors yet), and the version was reporting as 10,0,5,283319 as one would hope. Cool.

Next I went into [clusterNode1]\runtime\bin and ran WSConfig. I have found that unless I run WSConfig from the instance I'm trying to configure (rather than Adobe's advice of using cfusion\runtime\bin), then it doesn't pick up the fact that clusterNode1 & 2 are a cluster, and won't let me configure them.  I removed & re-applied the connector just fine: and retested that the cluster was actually working: yes. COOL.

Finally I went into [scratch]\runtime\bin to reconfigure that one. And whilst I was OK to remove the connector, I cannot re-apply it, because this is all I see in WSConfig:

IE: it doesn't show the CF instance option, it only lists the clusters. However the instance I am running WSConfig from is not in that cluster - or any cluster - it's a stand-alone server. And not listed there.

NB: the only CF instance I have running is the SCRATCH one, and I've even switched IIS off.

However it does not give me the option of just configuring a vanilla server.  There's no-doubt a way to do this via the command line, but I'm already annoyed enough as it is that the updater doesn't do all this for me like it's supposed to, so I'm doubly annoyed at needing to horse around looking up command-line options and doing this by hand.  I'm not frightened of doing this sort of thing: I just shouldn't have to be doing it.
See Sean's comment below. The UI has changed from CF9, and for non-clustered instances, one does not need to specify anything. So this is all working to spec.

I'll report back with my success or failure of doing this last step once it's done. I just want to get this article up quickly so as to share the general upgrade experience with other people.

[time passes]

Oh hohohoho. ColdFusion, you beat me again. I diligently backed-up those config files as I mentioned above... not expecting ColdFusion to blow away the entire directory they were in. Nice. Thanks for that.  But I remembered what i needed to rejig from last time, and after messing around for half an hour trying to see why Apache wouldn't start, I noticed a bad path I had modified incorrectly, and I was all go.

The other thing I needed to piss about with was WSConfig... I was able to dig out some docs and I needed to do this to configure my stand-alone Apache site:

java -jar ../lib/wsconfig.jar -ws Apache -dir C:\apps\Apache\httpd\2.2\conf -host localhost -v -bin C:\apps\Apache\httpd\2.2\bin\httpd.exe

Once I found out that's what I needed to do, and tried three different combinations of params, it configured fine. Other than the afore-mentioned ruining of my config, I mean.

So this updater process was mostly successful. They still need to fix a coupla things:
  • I should not have to mess with WSConfig after the update
  • If I do, it should work!
  • the update should not blow away files that have been changed (and certainly not entire directories!)
  • it should back-up any files it does change
  • that glitch I observed in the updater with the "select all" not working.
Unfortunately I don't have anything that runs under load, so I have no idea whether this sorts out all the load issues people have been having with IIS.  I'll leave that to someone else to report on.

And now it's time for dinner.