Copy link to clipboard
Copied
I have CF 8.0.1 installed in Multiserver configuration on 64-bit Windows 2003 Enterprise server and its running great. However, I need to upgrade from 8.0.1 to CF 9 and thus far, each of two attempts has prompted me to uninstalled the previous installation of CF 8.0.1 before CF 9 will install, complaining that JRun is already installed and needs to be uninstalled. This doesn't seem to me to be a very smooth upgrade path, so it makes me question if I am missing some critical step in the in-place upgrade from 8.0.1 to 9. Anyone done this already and have advice?
Best,
Scott
Copy link to clipboard
Copied
Most of the advice I have read actaully recomends the clean insall over the inplace install.
Using the handy-dandy ColdFusion Archive .car feature to migrate all your application settings from one to the other.
Copy link to clipboard
Copied
I haven't tried this in CF9 yet, but the following approach has worked up through CF8 for upgrading MultiServer installs.
1) Shutdown all CF services.
2) Backup all *.xml files from the "<jrunfolder>\Servers\<x>\cfusion.ear\cfusion.war\WEB-INF\cfusion\lib\*.xml" for each of your server instances and save them to a safe location. If you have other non default directories for things like CustomTags or 3rd party java filters back them up too.
3) Uninstall ColdFusion, reboot.
4) Install CF9 MultiServer.
5) Create CF9 instances for each of your previous server instances.
6) Create a directory named cfXsettings (in which X is the earlier version of ColdFusion) in the cf_webapp_root/WEB-INF/cfusion/lib directory.
7) Copy the backed up files settings files to the ColdFusion 8 cfusion/lib/cfXsettings directory.
8) Edit the ColdFusion 8 cfusion/lib/adminconfig.xml file by setting the value of the runmigrationwizard and the migratecfX (in which X is the earlier version of ColdFusion) switch to true.
9) Restart the ColdFusion Services. It helps to configure each CF server instance to run as it's own service so that you can stop each independantly.
10) Browse to ColdFusion Administrator to run the migration wizard. After you log in with the provided Admin password, it will begin importing your configuration settings.
Repeat steps 6-10 for each CF server instance. Leave the default/enterprise coldfusion instance unchanged unless you want all future instances to inherit your default/enterprise changes.
The *.car method will not get everything.
Copy link to clipboard
Copied
The *.car method will not get everything.
What's an example of what it misses?
--
Adam
Copy link to clipboard
Copied
I tried using the *.car method when I upgraded from CF7 to CF8. I had to migrate 200+ DSN's from the old instance to a new one. When I tried to import it, it corrupted my neo-query.xml file. I had to uninstall and reinstall the CF application again. I backed up the original config files before trying again in order to be able to recover without having to reinstall again. CAR files are fine if you are staying within the same version of CF but I ran into problems if trying to go across versions.
Copy link to clipboard
Copied
I tried using the *.car method when I upgraded from CF7 to CF8. I had to migrate 200+ DSN's from the old instance to a new one. When I tried to import it, it corrupted my neo-query.xml file. I had to uninstall and reinstall the CF application again. I backed up the original config files before trying again in order to be able to recover without having to reinstall again. CAR files are fine if you are staying within the same version of CF but I ran into problems if trying to go across versions.
Interesting. I'd never used it until CF8 (testing CF8 > CF9 migration), and other than missing a couple of trivial settings, it worked fine for me. I guess it could be environment- or luck- specific, or they fixed stuff between CFMX7 and CF8. The archiving stuff was new to CFMX7 wasn't it? Maybe they'd not ironed out all the creases.
I guess I'd perhaps try using the CAR approach, but also take a back-up of the XML files too, given what you say.
--
Adam
Copy link to clipboard
Copied
I don't think the CAR method will get Sandbox Security settings which was a requirement for me.
Copy link to clipboard
Copied
Thanks. I'll give your recommendation a go on my test machines. In a previous attempt, I had tried the .CAR method but it failed to restore all settings; the migration settings in the adminconfig.xml were successful in previous upgrades, so I'll test that.
Copy link to clipboard
Copied
I second what Ian says.
If you were to do an inline upgrade and for some reason it fails: you're left with no operational server. You should install CF9 in parallel to the CF8 box, migrate the sites over, test, test, test, test, switch the CF9 instance to live. Don't change the CF8 instance in any way, in case you need to revert back to it.
--
Adam
Copy link to clipboard
Copied
As long as you have all of the *.xml files from the original CF8 Install, you can always reinstall CF8, stop the services, restore the XML files back to the lib directory, and start the services again. You will have an exact clone of your original CF configuration as long as you choose all of the same options during the CF install wizard.
To add a degree of safetly, you could always build a test CF8 server, copy your production xml files to it, verify that it shows the same settings, then practice there first.
Copy link to clipboard
Copied
As long as you have all of the *.xml files from the original CF8 Install, you can always reinstall CF8, stop the services, restore the XML files back to the lib directory, and start the services again.
So you do your back-ups and perform your inline CF8->CF9 upgrade, and - like many many many inline upgrades - it hoses the CF install.
Whilst you fart-arse around reinstalling CF8 and putting your XML files back (and retest everything)... your site is down.
This is a very risky approach.
--
Adam
Copy link to clipboard
Copied
The problem is that there is no such thing as an Inline Upgrade of a Multi-Server configuration. Each instance has to be handled independently once the underlying JRun application server has been reinstalled.
I have performed this routine many times across 20+ sites going back to version 6.1. If you test the procedure off to the side to familiarize yourself with how it works, there is little risk. Yes there is some downtime that has to be planned for. The install of CF8 is only a backout plan. As long as you have the XML files and the original install media, you can always revert back to where you were if you run into problems.
So far I have never had to revert back.
Copy link to clipboard
Copied
Yes, that what I've seen in a previous test installation: with 8.0.1 installed, 9 will not install; everything must be backedup, then uninstalled and, only then will CF9 install and let you create the server instances.
thanks.
Copy link to clipboard
Copied
During my CF7 to CF8 transition, I did experiment with deploying a CF8 WAR onto the existing CF7 MultiServer, and while the CF8 instance worked, I was stuck managing all of the CF instances from the CF7 interface. I figured that if was going to upgrade to CF8, I did not want any CF7 artifacts laying around so I chose the uninstall/reinstall approach with the XML file backup. The steps to edit the adiminconfig.xml file is just what a Single server install does automaticly. The multi-server just makes you do a few extra steps to engage it on each server instance.
Copy link to clipboard
Copied
Yes, I think that a backup of data, *.xml and other essentials, then a clean install is what I will end up doing. Fortunately, I have a couple of VMs to experiment with prior to moving into the upgrade of dev, test, prod servers. Might get real interesting when it comes to the connector since we run in distributed mode and will need to upgrade the web servers before the 2nd cluster host gets upgrade to CF9.
Since CFMX 6 days (about 5+ years), we ran with a .WAR deployment, but when we switched to 64-bit OS and wanted to stay with JRun, had to go to Multiserver install. Two steps forward, one step back...
Copy link to clipboard
Copied
Many of my sites are distributed mode as well. There are two details to make this work.
1) Make sure that the JRE on the web server is the same as the one installed by default in CF9 on the CF server.
2) While I have not done CF9 yet, my experience with the CF7->CF8 transition was that the CF7 connector would only connect to a CF7 instance and the CF8 would only connect to a CF8 instance. There was a period during my transition where both connectors were installed and functioning in parallel.
Will you be clustering the ColdFusion instances? Session Replication?
Copy link to clipboard
Copied
Yes, am aware of the JRE issue since 64-bit JRE was a big issue when we moved off of 32-bit.
The test and prod instances are clustered and we have session replication in play as well. I'll have to modify the jrun.xml to disable clustering during the upgrade of one host server, then after the new version is online, upgrade the second, then recreate the clusters.
Copy link to clipboard
Copied
Did you run into any network MultiCast issues or are your servers all on the same switch? The clustering membership talks via network multicast.