If you are using CMFX and trying to "tune" the JVM - or maybe even just adding a class path, I have some advice for you. Don't use the CF Administrator to do it! Instead, get used to editing the jvm.config file located in cfusionmx7/runtime/bin. Not only will you benefit from gaining a better knowledge of the inner workings of your JVM, but you will also miss out on a ticklish bug that will have you scratching your head in frustration. Here's the scoop.
To start, here is the "default" java.args string from the jvm.config file.
Please note - just because it does work doesn't mean you should not be making adjustments to it that make sense for your server. There are a great many things to adjust that can make your server run better (or worse). One of those things is called "Garbage Collection" (GC). GC is how the JVM handles recovering memory that is no longer referenced by any object. It's how the JVM "self-tunes" the amount of memory it needs and uses. Here's the deal, there are actually several kinds of GC you can use. MM has set the JVM to use a type of GC called Parallel GC. It's the argument switch that says -XX:+UseParallelGC. According to Java Guru Robi Sen, this switch is not as effective as -XX:+UseConcMarkSweepGC.
So naturally, you might add this line to your JVM args. Here's the args from my blog server:
When you restart the server it will fail because the JVM will not be able to determine which GC to use (since both will be specified). You will have to go looking in the *server*-err.log files in the /runtime/logs/ directory to figure it out. I've been able to duplicate this about 3 times (2 times quite by accident or neglect). It may have something to do with the order of my arguments. Someone may be able to shed some light on it for me. But until I see otherwise, I'm editing the jvm.config file manually.
Related Blog Entries