I am using pre-beta versions of ColdFusion Blackstone on some of my applications (so as to test new features), and I’ve been updating the version used on a fairly regular basis, without any real downtime.
How is this possible? Simple. I have ColdFusion running on top of JRun4. When I want to move to a newer build, this is what I do:
1) Download the build
2) Run the installer and select option 3 to create a new ColdFusion EAR or WAR
3) Create a new JRun service instance using the JMC
4) Deploy the new ColdFusion EAR or WAR into the new instance
5) Run some tests to make sure the code is working properly (all this time traffic is still being services by the previous version)
6) Run the wsconfig utility to map the sites to the newly deployed ColdFusion (now traffic is being services by the new version)
7) Drop the previous JRun service (not necessary, but might as well not waste resources)
Oh, and if there is a problem, switching back is just a matter of starting the previous service and running wsconfig again.
It’s a thing of beauty, and another great example of using multiple ColdFusion instances. If you have ColdFusion Enterprise, and are not yet using multiple instances, I’d strongly suggest that you consider doing so, quickly.

4 thoughts

  1. Multiple instances wasn’t an "upgrade seller" for us but now that we have understood it and made use of it, I must say that it outweights all other features introduced in MX. Through it, we are able to offer better service to our customers with minimal impacts on hardware costs (increasing RAM) which at the end of the day is well worth the upgrade! Great to ear of a new way to make use of it and can’t wait to be in the beta to try it out. 😉

  2. Multiple instances has given me nothing, and I don’t use enterprise. Heck for the price I’d pay for enterprise over professional, I could buy another web server….which one is better…hmm…
    Anyways, this won’t work for most people, who actually have real world databases, that also are a big part of an upgrade. Things like new tables, stored procs, etc. For saftey the system is taken down, the database backed up, upgraded, and then the front end upgraded.
    Give me some real enterprise features. Real time processing information, process haulting ( kill ), memory usage, resource usage ( cached query stats, server scope inspection ). Heck I’d settle for a MS system console plugin so I don’t have to connect to /cfide/adminstrator/index.cfm on X number of servers when I need to change something. These are the things that make products like Oracle, SQL Server, DB2, and other "Enterprise".

  3. Eric, I disagree, it depends on what the update is. I like knowing that if I change DB driver that I can test it while the first configuration is live, and roll back if needed. What I described is not for every upgrade scenario, but it is perfect for CF and configuration upgrades. Sure, if you DB is changing then that’ll require a different solution.
    As for an MS system console plugin, that should be doable with the admin API.

  4. I’m with you Ben!
    I just installed the Blackstone Beta using the Multi-Instance use case.
    I only have one development server, and need to keep CFMX 6.1 for my real development, but want to be able to participate in the beta.
    Multiple instances was the way to go.
    Steve

Leave a Reply