You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Ivan <xh...@gmail.com> on 2009/05/01 03:21:01 UTC

Re: Webservice handling consuming considerable CPU (Windows)

IMO, although those files are in the claspath of the manifest file of some
jars, Geronimo may not need them, like the saaj, Axis2 has their own
implementations.The search is caused by the WSDLQueryHandler, it need to
output the DOM to text. I guess that in you webservice client, the codes may
require the wsdl file using http://....?WSDL. From the Java
Doc, TransformerFactory will search the service files in all the jars in the
classloader. Some jars may not in your dependencies, but they may be refered
by the your dependencies. If you are using IBM JDK, you only need to rename
the jaxp.properties.sample to jaxp.properties file in the jre/lib folder,
directly add the option like
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl.
Wish that it is useful for you.
Ivan


2009/5/1 mdasari <md...@gmail.com>

>
> Based on the dependency comment, this is what I figured out.
>
> There are several geronimo system modules referring to non existant (in
> geronimo distribution) JAR files. I don't know how the geronimo instance is
> still working fine if they are required or why those files are referenced
> if
> they are not required
>
> The following are the files it is not able to find:
>
> ---------------------------------------
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-xjc\2.0.5\activation.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-xjc\2.0.5\jaxb-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-xjc\2.0.5\jaxb-impl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\bind\jaxb-xjc\2.0.5\jsr173_1.0_api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\messaging\saaj\saaj-impl\1.3\activation.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\messaging\saaj\saaj-impl\1.3\saaj-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jaxb-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jaxb-impl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jaxws-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jsr173_api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jsr181-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\jsr250-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\resolver.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\saaj-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\saaj-impl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\2.0\sjsxp.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\jaxb\lib\jaxb-api.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-rt\jaxb\lib\jaxb-impl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-tools\2.0\jaxb-xjc.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-tools\2.0\jaxws-rt.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\com\sun\xml\ws\jaxws-tools\2.0\relaxngDatatype.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_cs.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_de_DE.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_es.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_fr.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_hu.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_it.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_ja_JP.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_ko_KR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_pl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_pt_BR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_ru.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_zh_CN.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derby\10.4.1.3\derbyLocale_zh_TW.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_cs.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_de_DE.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_es.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_fr.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_hu.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_it.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_ja_JP.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_ko_KR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_pl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_pt_BR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_ru.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_zh_CN.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbyclient\10.4.1.3\derbyLocale_zh_TW.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbynet\10.4.1.3\derby.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_cs.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_de_DE.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_es.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_fr.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_hu.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_it.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_ja_JP.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_ko_KR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_pl.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_pt_BR.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_ru.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_zh_CN.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\derby\derbytools\10.4.1.3\derbyLocale_zh_TW.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\openejb\openejb-core\3.0\openejb-client-3.0.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\openejb\openejb-core\3.0\openejb-loader-3.0.jar
>
> geronimo-tomcat6-javaee5-2.1.3\repository\org\apache\openejb\openejb-core\3.0\xbean-finder-3.4-r636442.jar
>
> ---------------------------------------
>
> I can see references to these files in respective MANIFEST files, for e.g:
> derby/10.4.1.3/derby-10.4.1.3.jar file has following libs in the class
> path
> Class-Path: derbyLocale_cs.jar derbyLocale_de_DE.jar derbyLocale_es.jar
> derbyLocale_fr.jar derbyLocale_hu.jar derbyLocale_it.jar
> derbyLocale_ja_JP.jar derbyLocale_ko_KR.jar derbyLocale_pl.jar
> derbyLocale_pt_BR.jar derbyLocale_ru.jar derbyLocale_zh_CN.jar
> derbyLocale_zh_TW.jar
>
> Similarly, jarb-impl-2.0.5.jar has
> Class-Path: jaxb-api.jar activation.jar jsr173_1.0_api.jar jaxb1-impl.
>  jar
>
> ------------------------
>
> I'll open a JIRA on this soon.
>
> BTW, I wasn't able to disable the search/lookup for these JARs. Can anyone
> tell me how to do that? I wouldn't want to update the MANIFEST files
> myself.
>
> Is there a way to disable the lookup if geronimo didn't find the jar in the
> initial attempt, currently it is looking up per request (that too several
> times per request)
>
>
> best regards
> - mdasari
>
>
>
> mdasari wrote:
> >
> > Thanks for the quick replies.
> >
> > I'll look into the TransformerFactory, but if that lookup is primarily
> > related to JAX then I'm not sure why the code is trying to load DERBY
> jars
> > as well (may be because of system-db dependency).
> >
> > Regarding other questions raised, I'm using clean install of Geronimo
> > v2.1.3, I'm using my own Java Service Wrapper wrapper.conf with following
> > jars in it.
> >
> > ------------
> > wrapper.java.classpath.1=%GERONIMO_HOME%/lib/wrapper.jar
> > wrapper.java.classpath.2=%GERONIMO_HOME%/bin/server.jar
> > wrapper.java.classpath.3=%GERONIMO_HOME%/bin/shutdown.jar
> > wrapper.java.classpath.4=%GERONIMO_HOME%/lib/geronimo-cli-2.1.3.jar
> > wrapper.java.classpath.5=%GERONIMO_HOME%/lib/geronimo-kernel-2.1.3.jar
> >
> wrapper.java.classpath.6=%GERONIMO_HOME%/lib/geronimo-transformer-2.1.3.jar
> > wrapper.java.classpath.7=%GERONIMO_HOME%/lib/commons-cli-1.0.jar
> > wrapper.java.classpath.8=%GERONIMO_HOME%/lib/commons-logging-1.0.4.jar
> > wrapper.java.classpath.9=%GERONIMO_HOME%/lib/cglib-nodep-2.1_3.jar
> > wrapper.java.classpath.10=%GERONIMO_HOME%/lib/log4j-1.2.14.jar
> > wrapper.java.classpath.11=%GERONIMO_HOME%/lib/xpp3-1.1.3.4.O.jar
> > wrapper.java.classpath.12=%GERONIMO_HOME%/lib/xstream-1.2.2.jar
> > wrapper.java.classpath.13=%JAVA_HOME%/lib/tools.jar
> > ------------
> >
> > My app is a typical web-service that doesn't have "direct" dependencies
> on
> > most of the jars, it has following dependencies (from the Dependency
> > Viewer)
> >
> > org.apache.geronimo.configs/axis/2.1.3/car
> > org.apache.geronimo.configs/axis2-ejb/2.1.3/car
> > org.apache.geronimo.configs/axis2/2.1.3/car
> > org.apache.geronimo.configs/j2ee-corba-yoko/2.1.3/car
> > org.apache.geronimo.configs/j2ee-server/2.1.3/car
> > org.apache.geronimo.configs/openejb/2.1.3/car
> > org.apache.geronimo.configs/openjpa/2.1.3/car
> > org.apache.geronimo.configs/system-database/2.1.3/car
> > org.apache.geronimo.configs/tomcat6/2.1.3/car
> >
> > If I come up with anything related to TransformerFactory then I'll post
> > the results to thread.
> >
> > regards
> > - mdasari
> >
> >
> >
> > kevan wrote:
> >>
> >>
> >> On Apr 29, 2009, at 10:32 PM, Ivan wrote:
> >>
> >>> 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.
> >>
> >> It may be that that this behavior could be tweaked by configuring
> >> TransformerFactory. However, shouldn't be expecting our users to do
> >> the tweaking, IMO.
> >>
> >> <snip>
> >>
> >> mdasari,
> >> My compliments on an excellent piece of problem diagnosis. Very nice
> >> job.
> >>
> >>>
> >>> 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?
> >>
> >> It may be that you can disable this search, but you shouldn't have to
> >> do anything... I have no idea why we're looking for those jars in
> >> those locations... Maybe someone else will have a good idea?
> >>
> >>> 2. Where does class-loader get this list of JARs? Can I tweak anything
> >>> there?
> >>
> >> The jars that will be searched for are based on dependencies that are
> >> identified when Geronimo is built/assembled, dependencies defined by
> >> your deployment plan (if you have one), and artifacts deployed in
> >> your .WAR/.EAR.
> >>
> >>> 3. Did I configure something incorrectly?
> >>
> >> Is this a clean install of Geronimo? E.g. did you overlay an older
> >> version of Geronimo with a newer one?
> >>
> >>>
> >>> 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?
> >>
> >> Not immediately. You could create a Jira for this. If you have an
> >> application that demonstrates the issue, that's great.
> >>
> >> --kevan
> >>
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Webservice-handling-consuming-considerable-CPU-%28Windows%29-tp23303330s134p23322617.html
> Sent from the Apache Geronimo - Users mailing list archive at Nabble.com.
>
>


-- 
Ivan