It seems that the search for service provider for the TransformerFactory takes too much time.I suggest you set the the corresponding implemenation via system property or put it to a jaxp.properties in the jre's lib folder. You could refer more in the Java Doc of TransformerFactory class. Ivan
2009/4/30 mdasari <mdas...@gmail.com> > > Hi, > > Geronimo: v 2.1.3 > OS: Windows XP, Windows Server 2003 > > I've a web-service that gets polled every N minutes, I noticed that when > it > is servicing a request the CPU usage is hitting close to 80%. I expect to > have multiple clients to this web-service so it is going to be a problem. > > Based on what I deduced, the following stack trace is trying to load > several > of JAR files and not able to load/find them. This is resulting in lot of > kernel level calls thus CPU utilization. > > ---------- STACK of the thread processing a WS request and trying to load > JARs ------------- > > "http-0.0.0.0-8080-1" daemon prio=6 tid=0x437c7c00 nid=0x1700 runnable > [0x432ce000..0x432cfa14] > java.lang.Thread.State: RUNNABLE > at java.io.WinNTFileSystem.checkAccess(Native Method) > at java.io.File.canRead(File.java:691) > at > > org.apache.geronimo.kernel.classloader.UrlResourceFinder.getClassPath(UrlResourceFinder.java:151) > at > > org.apache.geronimo.kernel.classloader.UrlResourceFinder.findResource(UrlResourceFinder.java:95) > - locked <0x05420118> (a java.lang.Object) > at > > org.apache.geronimo.kernel.classloader.JarFileClassLoader$3.run(JarFileClassLoader.java:179) > at java.security.AccessController.doPrivileged(Native Method) > at > > org.apache.geronimo.kernel.classloader.JarFileClassLoader.findResource(JarFileClassLoader.java:177) > at > > org.apache.geronimo.kernel.config.MultiParentClassLoader.getResource(MultiParentClassLoader.java:580) > at > > org.apache.geronimo.kernel.config.MultiParentClassLoader.getResource(MultiParentClassLoader.java:565) > at > > org.apache.geronimo.kernel.config.MultiParentClassLoader.getResource(MultiParentClassLoader.java:565) > at > > org.apache.geronimo.kernel.config.MultiParentClassLoader.getResource(MultiParentClassLoader.java:565) > at > > org.apache.geronimo.kernel.config.MultiParentClassLoader.getResource(MultiParentClassLoader.java:565) > at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:1168) > at > > org.apache.catalina.loader.WebappClassLoader.getResourceAsStream(WebappClassLoader.java:1170) > at > javax.xml.transform.SecuritySupport$4.run(SecuritySupport.java:94) > at java.security.AccessController.doPrivileged(Native Method) > at > > javax.xml.transform.SecuritySupport.getResourceAsStream(SecuritySupport.java:87) > at > > javax.xml.transform.FactoryFinder.findJarServiceProvider(FactoryFinder.java:250) > at javax.xml.transform.FactoryFinder.find(FactoryFinder.java:223) > at > > javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:102) > at > > org.apache.geronimo.axis2.WSDLQueryHandler.writeTo(WSDLQueryHandler.java:246) > at > > org.apache.geronimo.axis2.WSDLQueryHandler.writeTo(WSDLQueryHandler.java:240) > at > > org.apache.geronimo.axis2.WSDLQueryHandler.writeResponse(WSDLQueryHandler.java:164) > at > > org.apache.geronimo.axis2.Axis2WebServiceContainer.processGETRequest(Axis2WebServiceContainer.java:321) > at > > org.apache.geronimo.axis2.Axis2WebServiceContainer.doService2(Axis2WebServiceContainer.java:268) > at > > org.apache.geronimo.axis2.Axis2WebServiceContainer.doService(Axis2WebServiceContainer.java:205) > at > > org.apache.geronimo.axis2.Axis2WebServiceContainer.getWsdl(Axis2WebServiceContainer.java:161) > at > > org.apache.geronimo.tomcat.TomcatEJBWebServiceContext$EJBWebServiceValve.invoke(TomcatEJBWebServiceContext.java:159) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) > --------------------- > > > > The following are files this java process is trying to read/load. (Output > from Windows process monitor). It seems to be doing in a loop as I see > continuous system calls to read these jar files repeatedly. > > -------------------- > > > 5:32:51.2222845 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\activation.jar > NAME NOT FOUND > 5:32:51.2225720 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jsr173_1.0_api.jar > NAME NOT FOUND > 5:32:51.2229192 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb1-impl.jar > NAME NOT FOUND > 5:32:51.2232875 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\messaging\saaj\saaj-impl\1.3\saaj-api.jar > NAME NOT FOUND > 5:32:51.2236048 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\messaging\saaj\saaj-impl\1.3\activation.jar > NAME NOT FOUND > 5:32:51.2240117 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb-api.jar > NAME NOT FOUND > 5:32:51.2242844 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\activation.jar > NAME NOT FOUND > 5:32:51.2245549 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jsr173_1.0_api.jar > NAME NOT FOUND > 5:32:51.2246938 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_zh_TW.jar > NAME NOT FOUND > 5:32:51.2250253 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbynet\10.4.1.3\derby.jar > NAME NOT FOUND > 5:32:51.2252595 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_cs.jar > NAME NOT FOUND > 5:32:51.2254948 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_de_DE.jar > NAME NOT FOUND > 5:32:51.2257273 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_es.jar > NAME NOT FOUND > 5:32:51.2259593 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_fr.jar > NAME NOT FOUND > 5:32:51.2262344 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb1-impl.jar > NAME NOT FOUND > 5:32:51.2266488 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb-api.jar > NAME NOT FOUND > 5:32:51.2269216 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\activation.jar > NAME NOT FOUND > 5:32:51.2271920 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jsr173_1.0_api.jar > NAME NOT FOUND > 5:32:51.2274621 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb1-impl.jar > NAME NOT FOUND > 5:32:51.2279473 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb-api.jar > NAME NOT FOUND > 5:32:51.2282277 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\activation.jar > NAME NOT FOUND > 5:32:51.2284987 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jsr173_1.0_api.jar > NAME NOT FOUND > 5:32:51.2287691 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb1-impl.jar > NAME NOT FOUND > 5:32:51.2291697 PM java.exe 2880 QueryOpen > > E:\geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-impl\2.0.5\jaxb-api.jar > NAME NOT FOUND > > ....... > -------------- > > > My questions are: > 1. I don't see those JARs in the location it is looking for, is there a way > to disable this lookup? Do I've to place those jar files in those > locations? > 2. Where does class-loader get this list of JARs? Can I tweak anything > there? > 3. Did I configure something incorrectly? > > Geronimo/Webservice functionally still works, but I'd expect severe > problems > when I use this service with multiple ws clients. > > Can anyone shed some light on this? > > best regards > - mdasari > -- > View this message in context: > http://www.nabble.com/Webservice-handling-consuming-considerable-CPU-%28Windows%29-tp23303330s134p23303330.html > Sent from the Apache Geronimo - Users mailing list archive at Nabble.com. > > -- Ivan