A simple JVM update misunderstanding caused a real mess on one of our ColdFusion 11 (Windows) servers.
After being prompted, I installed an update for the JVM (to 1_8_60) at the console of a Windows server. We have some admin tools that require Java, so we update Java when needed. Upon completion, the installer prompted me that there was a insecure version of Java running on the machine and asked about unstalling it. Sure, right? NO! As it turns out, that insecure version was actually running under the ColdFusion 11 install directory and was now uninstalled.
Once I realized what had happened, I thought it would be an easy fix. I updated the jvm.config file for each instance to point to the new Java that was installed. If you are troubleshooting this same problem, take note that you need to point to the 64-bit engine if you are running 64-bit. The Java updater installs an x86 version in “Program Files (x86) > Java” and a 64-bit version in “Program Files > Java”. Be sure to point it to the right one for your install.
With that JVM path update, my CF instances would start. However, the Add-On services for ColdFusion 11 would NOT start.
This is where it got tricky. The Add-On services run on Jetty, which has a separate configuration from the Coldfusion instances. There isn’t a lot of troubleshooting information about this available on the Web. Most of what I found applied only to Linux/Unix. After much hunting, I was able to find a configuration file named jetty.lax in <install drive>:\ColdFusion11\cfusion\jetty. In that file, there is a path to java.exe. This is what had to be updated.
lax.nl.current.vm=C:\\Program Files\\Java\\jdk1.8.0_60\\jre\\bin\\javaw.exe
The points to the actual EXE file, not just the directory like the CF instances do.
With that update, the Add-on Service started and everything was back in operation.
For those who might run into this, below are the steps. These could also be used as instructions for updating the Java JVM that ColdFusion 11 runs on – if you didn’t install it to the <drive>:\ColdFusion11\jvm folder.
- Update Java (or do it by accident like me!)
- For each ColdFusion instance, edit jvm.config to point to the new JVM
- Default location for wsconfig is: <drive>:\ColdFusion11\<instance>\bin\jvm.config
- Point to the correct version (x86 or 64-bit) for your CF install
- 64-bit example: java.home=C:\\Program Files\\Java\\jdk1.8.0_60\\jre
- x86 example: java.home=C:\\Program Files (x86)\\Java\\jdk1.8.0_60\\jre
- NOTE: You can also do this from the CF Admin (Java and JVM settings) if you prefer
- Restart CF instances
- Update the Java path for Jetty (ColdFusion 11 Add-On Services)
- You only need to do this in the default (cfusion) instance
- ??<drive>:\ColdFusion11\cfusion\jetty\jetty.lax
- 64-bit example: lax.nl.current.vm=C:\\Program Files\\Java\\jdk1.8.0_60\\jre\\bin\\javaw.exe
- x86 example: jlax.nl.current.vm=C:\\Program Files (x86)\\Java\\jdk1.8.0_60\\jre\\bin\\javaw.exe
- Restart ColdFusion 11 Add-On Services
One other tip… if you had special SSL certificates installed in your Java certificate store, you will need to reinstall those.
Great stuff, Michael. Thanks for sharing it. I just pointed someone here who had raised what seems the same problem in a comment on the Adobe blog post about CF11 update 6.
Thank you for sharing this.
Windows update or something else messed the PDF Services and they were unable to start.
I installed a new jre only for Add on -service and was back in business after services restart.
Hi, Mike. I hope you won’t mind me offering this here (you can remove it if you prefer), but given the subject, I thought some finding this post may be interested to find one I did on this same subject, with a lot more detail (and other causes) for why (and how to fix when) CF won’t start after applying a JVM update.
http://www.carehart.org/blog/client/index.cfm/2014/12/11/help_I_updated_CFs_JVM_and_it_wont_start