Friday, June 15, 2007

Installing CF8 on Existing CF7 Multi Server Setup and use JRE 1.5

So tonight, I found myself searching for a little help on this subject and came up with one blog referencing a side-by-side CF7/CF8 stand alone installs using Apache. It seems pretty easy but the problem I faced was that I am using IIS and I have my CF setup as Multi-Server JRun configuration. If the first scenario I gave seems like what you need to do, then you can click here to go to that blog entry, if not read on. So let's start this little mission. First, I started by creating a new instance on my JRun server. I've read instructions from Adobe (Macromedia actually back then) on how to do this, but instead of trying to find that article I will guide you thru my steps.
STEP 1: CREATE NEW SERVER INSTANCE IN JRUN
  1. Login to JRun Administrator
  2. Click on "Create New Server"
  3. When the window pops-up enter your JRun Server Name. I named mine cfusion8.
  4. After you type your server name and either click on tab or click on "JRun Server Directory", you will notice it pre-populate. Leave this as is, as it will create your named directory in your servers folder inside your JRun folder.
  5. Click on create server and you will get a confirmation page with all your ports for your server. At this point there is no need to do anything else and click on Finish.
DO NOT START THE SERVER YET!

Ok, so now that we created our server, navigate to your JRun Servers folder (i.e. C:\Jrun\Servers\). Inside that folder you will notice a new folder named cfusion8. Go into the folder and delete the default-ear folder. You will still have one folder inside named SERVER-INF, leave that folder alone. For now, this completes creating the server where your CF8 installation will go, now we have to go create the EAR file from the CF8 install. The steps are as follows;

STEP 2: INSTALL CF8 AS EAR

  1. Download CF8 Beta from Adobe Labs
  2. Run Installation and Select Deployment option (3rd option) and select EAR file.
  3. Some important notes on your installation. The first option is where the installer will place your ear file (so remember the location) and when selecting your context root, the default in the installer is cfusion, but if you want it at the root specify it when it asks you "\". Basically make sure to read everything as you are going step by step.
  4. Once the installer finishes navigate to the folder where the ear file is. You should see a file named cfusion.ear. You will need to extract this file, there are some instructions on how to in the included read me file.
  5. When you extract the file make sure to change the name of the extracted folder to cfusion-ear. Then go into the folder and extract the cfusion.war file. The same applies here, when the extraction is complete make sure the name of the folder is cfusion-war.
  6. Navigate into the WEB-INF folder, open the application.xml file and change the web-uri from cfusion.war to cfusion-war.
  7. Navigate out and copy the entire cfusion-ear folder to the %JRun%\Server\cfusion8\ folder. (The folder we deleted the default-ear file from)

At this point you can go to your JRun Admin and start the server. Once you start the server, connect to it using the specified HTTP port for the server in the JRun settings (i.e. http://locahost:8301/CFIDE/administrator). This should get you to the initial CF page that finishes the installation. Once the installation is complete, login to your CF8 server.

OK, so at this point I was excited but then I navigated to my Server Settings and noticed the Java Version in use was 1.4.2_09 (pictured below), same as my CF7 install. This happened because my CF8 install was using the same JVM as my CF7 install and the 1.4 JRE in JRun. So there are a couple of things I had to do here, but before that. I am assuming that you are using IIS and using more than one website on your server. So open up the"Web Server Configuration Tool" (pictured below) and select the IIS sites that will use your new CF8 install and leave the CF7 sites alone. Once new JRE is selected I kept getting an error when trying to config, but there is a work around for it as well, but for config your sites at this point.

SERVER SETTINGS
Web Server Configuration Tool
At this point I needed to figure out how to use a different JVM and how to install the new 1.5 JRE on my server. So first install JRE by going to sun and selecting the JDK 5.0 Update 12 version (click here to go to download page). You will need this version as the JRE includes the server folder that is required, the SE version only has the client folder. I am sorry if this makes no sense but trust me I went thru it already. Now the next steps I used some information from another blog entry to create what I needed. I will summarize my steps below but the blog entry I referenced was Mark Kruger's "Coldfusion Muse - Including Custom JVM Settings "
  1. Create a new JVM file - I called mine jvm.config_five
  2. Inside the JVM file change the java.home value to the folder where the new jre is installed (i.e. java.home=C:\\Program Files\\Java\\jre1.5.0_12\\jre)
  3. Create a new windows service using the command line jrunsvc utility in the JRun/bin/ folder - use the following command.
  4. C:\JRun4\bin>jrunsvc -install cfusion "Adobe JRUN CFusion Server" "Adobe JRUN CFusion Server" -config jvm.config_five
At this point go back to your JRun Admin and STOP THE CFUSION8 SERVER. Once it has stopped, start your server via the windows service. If you get an error go look in the jrun4/logs directory for the cfusion8-out.log and the cfusion8-err.log. If everything goes perfect you should be able to login into your CF8 admin and see the new JRE version referenced (pictured below). At the same time you can log into your CF7 server and notice it is still running the 1.4 version as it is using the default JVM.
CF8 WITH JRE 1.5
Now, some final notes. In order for your CF8 install to use the 1.5 JRE, you must start the server via the windows services. Starting your server via the JRun Admin will make it use the default JVM and will load using the 1.4 JRE. If you need to work with the "Web Server Config Tool" to add more sites to your CF8 install, then this is something you want to do. For some reason when I attempted to work with the tool while the CF8 instance was using the 1.5 JRE I would get an mBean error. Honestly, I do not know what it means.
I did a simple cfdump on the website I configured for CF8 just to test and it worked showing version 8.  I hope this helps who ever reads this post, I know I am not great at explaining and that may be the reason I don't post much, but I will definitely try to make this good practice.
Now that I have my beta install on my dev server I will begin playing around and post any bugs I may run into with this config and maybe some CF8 posts of my own.  I am also working on Flash a lot lately and trying to get my hands around Flex 2 and well now Flex 3. So you may notice different entry types in this blog, but as it states, this is a Chronicle of a Developer.

Until next time .....

2 comments:

  1. nice, detailed instructions!

    one thing: should this:

    Navigate into the WEB-INF folder

    Actually say:

    Navigate into the META-INF folder

    ReplyDelete
  2. Hello Ranting Madman,

    I actually noticed in the stand alone version of CD the application.xml is in the WEB-INF folder, but my instructions are for the multi-server install of CF and that application.xml file is inside the META-INF folder. So inside your JRUN server it would be like this.

    {jrun_root_folder}\servers\name_of_your_server\cfusion-ear\META-INF.

    ReplyDelete