From: Greg E. <gem...@gm...> - 2005-12-28 20:16:44
|
I finally figured this problem out. I hope this helps someone else. I'm using cruise 2.3.0.1 with jmx enabled on win 2003 server. Cruise is running as a service using NtServiceWrapper found in the contrib folder of the distribution. Java 1.5 Short version: Cruise control jmx is built on mx4j, which requires xalan. xalan has a memory leak on java 1.5. See http://sourceforge.net/tracker/?func=3Ddetail&atid=3D450647&aid=3D1309695&g= roup_id=3D47745 As recommended in the link, I solved this by getting Xalan 2.7.0 and pre-pending the jars to the bootclasspath in the wrapper.conf. Long version: Out of memory errors did not show up in the cruisecontrol.log file.=20 They are thrown up into the wrapper.log found in the logs directory.=20 I was seeing tons of "Exception during http request" errors followed by out of memory. It turns out that my company has a vulnerability scanner that looks for http servers on all ports and when it finds them, it pummels them with bogus requests. So the scanner nails the jmx server on port 8000 every day around the same time and hangs our builds. This can be reproduced by continually refreshing http://<cruise_server>:8000. If you have jmx enabled in the jvm, you can watch the memory climb in jconsole. Here are the additional java parameters configured in wrapper.conf. wrapper.java.additional.1=3D-Djavax.management.builder.initial=3Dmx4j.serve= r.MX4JMBeanServerBuilder wrapper.java.additional.2=3D-Dcom.sun.management.jmxremote.authenticate=3Df= alse wrapper.java.additional.3=3D-Dcom.sun.management.jmxremote.ssl=3Dfalse wrapper.java.additional.4=3D-Dcom.sun.management.jmxremote.port=3D1099 wrapper.java.additional.5=3D-Xbootclasspath/p:E:\xalan-j_2_7_0\xml-apis.jar= ;E:\xalan-j_2_7_0\xercesImpl.jar;E:\xalan-j_2_7_0\serializer.jar;E:\xalan-j= _2_7_0\xalan.jar Greg |