When you create a multi-instance Coldfusion cluster one of the things you should be aware of is the jvm.config file. This file configures the jvm that coldfusion will use such as the path to the jre folder and the arguments passed into the jvm when the coldfusion service starts.

When you create a new coldfusion instance all the files and settings of the master instance are copied... except the jvm.config file. This means that any changes made here are used for all instances of ColdFusion. On the face of it this seems like a good thing. However there are two problems with this.

Note: The jvm.config file exists in "c:\JRun4\bin"

Problem 1: Shared Memory Settings

If your jvm.config specifies 1Gb of memory allocation, each instance of Coldfusion will be setup to use 1Gb each. So on a machine with 6 instances of CF running (plus the Coldfusion Administrator) you will have up to 7Gb of potential memory usage.

Further all CF applications have different memory requirements. For example why should a 5 page Petshop site be allocated the same amount of memory space as a 200 page online trading site?

Problem 2: Logging Ports

If you want to hook up an external logging/monitoring tool such as jConsole you need to specify a port number to use in the jvm.config file. However as each instance uses the same config file this leads to each instance of CF trying to output to the same port number.

Note: While you can setup the logging port to bind to the next available port number, this makes it impossible to know what port is being used by which CF instance without some unneccessary legwork.

 

Related Blog Postings

Post a Comment

Comment Etiquette:

  • Please keep comments on-topic.
  • Please do not post unrelated questions or large chunks of code.
  • Please do not engage in flaming/abusive behaviour.
  • Comments that contain or appear to be advertisments, will not be published.

We are all adults here so play nice.

*
*



 

Archives Blog Listing

 

Tag Listing