January 13, 2004
Unable to Connect to JRun
Yesterday was good day, on one of our CFMX 6.1 servers, every two hours all cold fusion pages returned with the error unable to connect to JRUN. The Cold Fusion Application Server Service wouldn’t restart, and we would have to reboot the machine.
In looking at the jrun logs in cf_root\runtime\logs, there was the error java.lang.OutOfMemoryError. And not much more information.
Because this happened suddenly, and there were no changes to the server. It was a perplexing situation. After successfully ruling out other options, we determined it had to do with the configuration settings of the JVM.
In, cf_root\runtime\bin\jvm.config, the default settings are
java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -Xbootclasspath/a:"{application.home}/../lib/webchartsJava2D.jar" -XX:MaxPermSize=128m -XX:+UseParallelGC -DJINTEGRA_NATIVE_MODE -DJINTEGRA_PREFETCH_ENUMS
Or Can be seen in the CF Administrator under the Java and JVM.
-server -Dsun.io.useCanonCaches=false -Xbootclasspath/a:"{application.home}/../lib/webchartsJava2D.jar" -XX:MaxPermSize=128m -XX:+UseParallelGC
The problem turned out to be with the heap memory size.
In the Java Virtual Machine, the Heap Layout is in three sections:
- Young generation who’s purpose is to hold newly created objects.
- Old generation that contains long withstanding objects.
- Permanent generation which stores class objects.
The total size of the young generation and old generation is manipulated by the –Xmx in the Jvm.config file or Maximum JVM Heap Size in the CF Administrator. In CF, this setting translates into initiated objects and the time in memory they are. (Remember it also includes the CFMX Application and any programming classes you have initiated)
The size of the permanent generation is manipulated by the –XX:MaxPermSize switch. For CF what this means is that this switch size has to be larger than the size of the all of the compiled web page classes.
If you think you are in a similar situation, I would recommend adding the following debugging settings to the JVM arguments, and restart the server. These arguments will help you to see the settings of the above, and if you are close or nearby in the values.
-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails
Reference:
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Turbo-charging Java HotSpot Virtual Machine, v1.4.x to Improve the Performance and Scalability of Application Servers
Finally passed the test
Managing in light of McGregor's Theory X and Theory Y
CMMI
Kicking HIT Leadership Up a Notch
That's just some mumbo jumbo project management BS
Outcomes - The tactic to get to the strategy
Nurse Call, VOIP, and Wi-Fi: Its just cool when things come together!
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
August 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
November 2005
October 2005
September 2005
August 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
Joel on Software
David Ross
Edward Prevost
Martin Fowler
The Health Care Blog
The Tales of Hoffman
The Business Word
Medical Rants
Christina's Considerations
Paul Levy
HIS Talk
Appropriate IT
Candid CIO
RSS feed




