Skip to main content

First "Official" ColdFusion 7 Upgrade

So today was the day--I kicked everyone off one of our development servers and upgraded from CFMX 6.1 Standard to CFMX 7 Enterprise. I've done the installation on several machines by this point but this was the first installation on a server at my company that "matters" (i.e. other people use it and would gripe if it was down for too long).


As expected everything went 100% smoothly! I just thought I'd share some thoughts about the installation and the improvements I'm already seeing in moving from CFMX 6.1 Standard to CFMX 7 Enterprise.


 


This installation was on Windows Server 2003 (Enterprise Edition), and I did the multi-instance/integrated JRun installation (option 2). The server supports three separate web sites, and we use IIS 6. We have maybe 20 datasources involved and a bunch of Verity collections as well, but nothing too out of the ordinary. I must admit when I upgrade things I actually tend to do a completely fresh installation, so I decided to do that here as well. Yes, probably unnecessary, but it gives me a bit more peace of mind. (Hey, that's just me--I've done the "co-exist" install on some other machines and it worked great as well.)


So step one was to move all our web app files to a backup directory and then uninstall CFMX 6.1. No problems, no lingering "stuff" after the uninstall, so that was all good.


Step two was to install CFMX 7, and as most of you probably know by know, the installer is really sweet. I know there are people on the Macromedia forums that are having problems with the download, etc. but I did a fresh download today just as a test, and I had no problems whatsoever with the installer I just downloaded.


As I said above, I chose option 2 which does an integrated JRun installation. The reason for this is that it includes the Enterprise Manager that allows you to manage multiple instances of ColdFusion from the CF administrator. I blogged about this feature briefly before, but to reiterate, this is seriously cool stuff. Now you can much more easily deploy and control multiple instances of CF, even on remote servers.


So after the installation succeeded I moved my web app files into their new home and everything just worked. This was for the first of the three sites this servers supports. Now here's where things get cool!


Next, I went to the Enterprise Manager and clicked on "Instance Manager." Then I clicked on "Add New Instance," gave my new instance a name, and away it went. A couple of minutes later I had a second instance of ColdFusion. This of course is to run the second site on this server, and this isolation is going to be fantastic for several reasons. First, if one site needs to be restarted it doesn't affect the other. Second, I have better control over access, security, etc. because the sites are now running completely independently of one another.


Since this is our dev server we just use a single IP address for the whole server and user host headers in IIS for the different sites, so I used the JRun web server connector tool and hooked CF server 1 into IIS web site 1, and server 2 into a different IIS web site that had a host header. Again, no problems, everything just worked! I'll sleep better at night now that all my sites are independent from one another.


That's pretty much all there is to report right now--once this setup has been running well on our dev server for a week or two we're going to schedule this same process on our two clustered production servers. I'm really encouraged by how smoothly this went.


How about the rest of you? Any installation experiences to share?


Comments


Don't tell me you had to re-add the 20 datasources all over again?


In this case I did, but I have all that stuff in a spreadsheet anyway so it only took a few minutes. Let me be clear and say that you do NOT have to manually re-add your datasources if you install CFMX 7 while CFMX 6.1 (maybe 5 as well, but I haven't done any 5 -> 7 upgrades) is still on your machine. I've done that on a few machines and it'll pick them up for you. I just decided to uninstall CFMX 6.1 first in this case so everything would be 100% clean. I know I'm being overly anal by doing that, so it's definitely not a case of having to do it if you don't want to.


The other thing I haven't looked into is whether or not you can use the neo-query.xml file (I believe that's the correct file anyway) from CFMX 6.1 and drop that into CFMX 7 so it'll pick up your datasources. Maybe I'll give that a shot on another machine and see what happens.


Yeah, just took a look at neo.query.xml. Now, I have a question: if I inserted portions into the xml file, will coldfusion see the datasource? could someone comprise that by using cffile to cause issues? are the folders protected????


I personally haven't ever done this, but I would think that if you manually add things to neo-query.xml and restart CF, it would pick up what you added. That's not to say it's going to work, however. I just haven't messed with it enough to know what happens. (You may have inspired me to try this out later just because now I'm curious.) The questions I would have are A) why would you want to do that vs. using the CF administrator (or in CFMX 7 now you can easily programmatically create datasources via the Admin API), and B) how are you going to handle password security? Here's some info on the Admin API in CFMX 7: http://tinyurl.com/6rrzl If you're looking into creating datasources programmtically in CFMX 6.1, then I'd use the undocumented ServiceFactory method as opposed to modifying neo-query.xml. Here's one thing I found on that: http://tinyurl.com/6bzy6 Also, the passwords in the neo-query.xml file are encrypted somehow (hashed with MD5 or maybe blowfish?), so I'm not sure if you stick plain text in there it will work. Again, I haven't experimented with it so I could be wrong. As for the cffile issue, neo-query.xml is no more or less protected than any other file on your server. I'm sure that on shared hosting accounts they sandbox people in so they can't upload files to this area (which is outside the webroot), but I don't think there's anything inherent permission-wise or anything else that is put into place by default when you install CF to protect this directory. Then again, if someone's on your server and you're giving them access enough to use cffile with no restrictions, and you aren't using a sandbox, I hope you trust them enough not to do something like this! ;-)


The easiest way to get those 20 data sources over is to export the data sources to a .car file and then import them back in the new CF. Works really well.


Thanks Ben! Something else I just hadn't done yet, but I'll definitely do this on future installations.


I have manually edited the neo-query.xml file and restarted CF and the new datasource showed up, so that works. Not sure if it is a good way to upgrade datasources to a new version though. I've used the Administrator components that you linked to above, and they work great. You can import the datasource information from CF5 or CF6 and then just loop over all of them to create them again. I was able to pull all CF5 datasources even after 5 was uninstalled. I guess the registry entries don't get removed during uninstall.


how do you export datasources to a car file?


John2--if you're using CFMX Enterprise this is done in the CF administrator under "packaging and deployment" (at least that's the nomenclature in CFMX 7; unfortunately I don't have CFMX 6.1 installed on the machine I have access to at the moment). When you build your CAR file you can specify, for example, just to include the datasource information and reploy that CAR on another server, which will create your datasources on the new server for you.

Comments

pagerank said…
Thanks for share nice article post.worlds hardest game 2Great fun for all

Popular posts from this blog

Installing and Configuring NextPVR as a Replacement for Windows Media Center

If you follow me on Google+ you'll know I had a recent rant about Windows Media Center, which after running fine for about a year suddenly decided as of January 29 it was done downloading the program guide and by extension was therefore done recording any TV shows.

I'll spare you more ranting and simply say that none of the suggestions I got (which I appreciate!) worked, and rather than spending more time figuring out why, I decided to try something different.

NextPVR is an awesome free (as in beer, not as in freedom unfortunately ...) PVR application for Windows that with a little bit of tweaking handily replaced Windows Media Center. It can even download guide data, which is apparently something WMC no longer feels like doing.

Background I wound up going down this road in a rather circuitous way. My initial goal for the weekend project was to get Raspbmc running on one of my Raspberry Pis. The latest version of XBMC has PVR functionality so I was anxious to try that out as a …

Setting Up Django On a Raspberry Pi

This past weekend I finally got a chance to set up one of my two Raspberry Pis to use as a Django server so I thought I'd share the steps I went through both to save someone else attempting to do this some time as well as get any feedback in case there are different/better ways to do any of this.

I'm running this from my house (URL forthcoming once I get the real Django app finalized and put on the Raspberry Pi) using dyndns.org. I don't cover that aspect of things in this post but I'm happy to write that up as well if people are interested.

General Comments and Assumptions

Using latest Raspbian “wheezy” distro as of 1/19/2013 (http://www.raspberrypi.org/downloads)We’lll be using Nginx (http://nginx.org) as the web server/proxy and Gunicorn (http://gunicorn.org) as the WSGI serverI used http://www.apreche.net/complete-single-server-django-stack-tutorial/ heavily as I was creating this, so many thanks to the author of that tutorial. If you’re looking for more details on …

The Definitive Guide to CouchDB Authentication and Security

With a bold title like that I suppose I should clarify a bit. I finally got frustrated enough with all the disparate and seemingly incomplete information on this topic to want to gather everything I know about this topic into a single place, both so I have it for my own reference but also in the hopes that it will help others.Since CouchDB is just an HTTP resource and can be secured at that level along the same lines as you'd secure any HTTP resource, I should also point out that I will not be covering things like putting a proxy in front of CouchDB, using SSL with CouchDB, or anything along those lines. This post is strictly limited to how authentication and security work within CouchDB itself.CouchDB security is powerful and granular but frankly it's also a bit quirky and counterintuitive. What I'm outlining here is my understanding of all of this after taking several runs at it, reading everything I could find on the Internet (yes, the whole Internet!), and a great deal…