geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mdasari <mdas...@gmail.com>
Subject Re: Webservice handling consuming considerable CPU (Windows)
Date Wed, 06 May 2009 16:33:49 GMT

The following is the bug for this issue:
https://issues.apache.org/jira/browse/GERONIMO-4623

cheers
- mdasari


Jarek Gawor-2 wrote:
> 
> I think the main problem here is that we keep creating a new
> TransformerFactory instance on each request which causes an expensive
> provider search. We can probably cache the TransformerFactory instance
> and reuse it on subsequent requests (or maybe even rewrite the code
> not to use the TransformerFactory API). Can you please open a bug on
> it?
> 
> Thanks,
> Jarek
> 
> On Wed, Apr 29, 2009 at 8:55 PM, mdasari <mdasari@gmail.com> wrote:
>>
>> 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.
>>
>>
> 
> 

-- 
View this message in context: http://www.nabble.com/Webservice-handling-consuming-considerable-CPU-%28Windows%29-tp23303330s134p23410617.html
Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.


Mime
View raw message