Reading time: 3 – 5 minutes
I just had to write this guide at work, and thought it could be useful to somebody else.
Basically at work, we have ColdFusion 8 installed on each developer’s computer, and in order to have everything separated, we have one ColdFusion instance per project, so we can save on resources, and can fine tune each of the instances according to the application needs.
There’s a few ways to accomplis this task, but lately I found that the easiest way if to use ColdFusion Admin itself, and let it do all the work for you. here’s how I do it, assuming you have ColdFusion 8 multi-server configuration already installed:
- Ensure the Macromedia JRUN Admin Server and Macromedia JRUN CFusion server are running
- Go to 127.0.0.1:8000
- Enter the username and password for the JRUN Admin, lowercase username of admin and the password used to install ColdFusion 8 default is password.
- Once logged in your will see the servers that you already have installed.
- Now check on which port CFUSION is installed. Default is 8300
- You can now access the main ColdFusion server in order to create your new instance. You should be able to login to http://127.0.0.1:your_cfusion_port. In this case 8300, so you can bookmark http://127.0.0.1:8300/cfide/administrator. The login details should be the same as your default JRun admin (admin, password)
- On the left hand menu, click on Enterprise Manager and then Instance Manager.
- You should now see all your servers again, but this time you will click on the “Add New Instance” button.
- Give your server a name, and add a path on the server directory field. ColdFusion will normally put this data automatically, but in this case we will change it to point to where we store our JRun servers (c:JRunServers). Could be anywhere really. Remember NOT to tick the options “Create Windows Service” and “Auto Restart Service”.
- Go make some tea. It will take a while (10 minutes or so), as ColdFusion is creating all the necessary runtime, and deploying several files to your new server.
- Once it’s finished, you should see a screen like this:
The port will obviously vary, but this screen means your server has been created successfully, and is installed on port xxxx. You should now be able to access this new instance by going to http://127.0.0.1:new_port_here as the service is already up and running.
There are a few little known issues with doing things this way.
If you “touch” any of the pages in the “cfusion” instance, e.g. Logging Settings – you don’t need to change anything, just hit submit – then the path to the Log files will become hard coded.
What does this mean? It mean that when you create a new instance, your new instance will store it’s log files under the “cfusion” instance directory rather than it’s own log directory.
You can obviously just log into the new instances Administrator and manually change the paths to what they should be, but folks aren’t expecting to do this.
Another little thing, this time in regards checking the “Create Windows Service” box. If you are going to run your new instance with it’s own JVM config file, you’ll have to remove the service, and recreate using jrunsvc, passing in the path to the config file. This recreates the service, and uses the specific JVM config file too. (it may be able to just modify the existing service, I just don’t have a Windows machine near me to check).
Additionally, you do not need the JRun Admin instance running to create new instances via the ColdFusion Enterprise/Instance Manager.
Yeah, you’re probably right Kev, but I find it to be a bit fiddly sometimes, and you need to really pay attention so you don’t screw up. By doing it via CF and generating the files, you make sure you are not forgetting anything.
You did write a doc about that, but again, it’s tricky to change the files, and if you auto-generate them, you won’t have this problem.
Hi Andy, in regards to “touch” the pages from cfusion, that’s really a risk, but as you said, you can simply change it on each of your new instances. I know it’s painful, but that’s how it is
I do agree with your second comment, and it makes a lot of sense. Basically I didn’t realize it worked this way, so I wrote an entire blog post + application to explain this:
http://www.placona.co.uk/blog/.....y-appendix
In regards to not having to have JRun started, I only do it so I find out on which port my main instance is installed.
Thanks a lot for the comments
To change the JVM that is used you can edit the Windows Service using the REGEDIT.

But ever since CF Admin did a bad job of editing JVM Configs I do it manually this way I know what is there and that each instance is clean and has the install setup when you first run CF Admin on that instance so that everything is setup correctly. I’m sure I wrote a doc about that
Once you have done it a few times I find it quicker then the CF Admin option.
Thank you for this guide. You are my hero!
For information about creating the JRun/CF service and doing per-instance configs, I’m looking at:
http://www.n8williams.com/devb.....s-services
[...] Andy Allan’s comment on my previous post, I decided to write a new post and make some things clear [...]
Thanks for sharing your thoughts there, Marcos. And the air app is interesting. About the blog entry, I see some others have raised a couple of the points I would, and I see that you created a new blog entry, though it doesn’t address what I do here.
I wonder if you might consider instead editing your entry, if I/we persuade you of the benefit in a couple of points. I appreciate that some people don’t touch blog entries once written, while others either edit them freely or mark them with “update” indications as needed. Totally your call.
Like Andy, I wondered why you have people use/enable the jrun admin? It’s not needed at all. I saw you say it was to find the port for the cfusion instance, but 8300 is indeed the default. It would seem not worth having people enable that instance just to find that out. Better if they try it, and only if it doesn’t work then turn it on.
I say this because many have the Admin instance on (which it is by default) and don’t realize they can turn it off (and disable it) as it’s not really needed any longer after CF7 added that Instance Manager.
Also, at the end, you refer to windows services controlling jvm settings. That’s not so at all. It’s simply that if you DO connect an instance to a windows service, then it’s indeed harder to change it to use its own jvm.config, which your tool helps with, but it seems someone could really misconstrue what you’ve said.
I know it’s been a couple years since you wrote it. If you re-read it, might you consider tweaking it? Just trying to help everyone.
Hi Charlie, Absolutely. in fact, this entry gets loads of views, and i do think it’s a bit dated. I will read carefully what your thoughts are, and would be more than willing to use them (giving the respective credits). In fact, if you’d be willing to suggest all the changes (maybe hit me via email), I’ll give it a read and will most definitely modify the entry with your updates. Thanks a lot!
Thanks, Marcos, and while I would normally take you up on that offer, I’m afraid I can’t today or tomorrow. I have an Adobe CF Developer week talk I’m giving tomorrow (on the CF Server Monitor) so can’t really afford to take that time for now.
But I’m confident you could make sense of what’s been shared by me and others (and what else you’ve learned since then) to make at least some tweaks. If you are open to just doing that, and let me know if/when you have, then perhaps later in the week I can then offer any possible revisions to consider. Thanks for considering them and working to make the entry be as good as it can be.
I’m not surprised it gets lots of hits.
It’s indeed a topic with which many struggle. I’ve long meant to do my own on it, but have just not gotten around to it, so I point to others (which we could add here, too, if you’re interested, to give people even more details if they care to see them.)