On Tuesday 04 March 2008, Christopher Cheng wrote: > I haven't read the codes of Axis, but I have been using it for 2 years > and it doesn't have this problem. > Having an overhead for 5-8 seconds is not an option for a production > system in term of performance > > What you are saying is that all the services must implement Clonable > interface?
No, not the services themselves. Just our interal service model stuff that holds all the metadata. Basically, when creating a new service, we need to calculate the metadata. We should cache that if possible. Dan > > On Tue, Mar 4, 2008 at 4:48 AM, Daniel Kulp <[EMAIL PROTECTED]> wrote: > > Christopher, > > > > We cannot just "reuse" the Service model objects as they are > > completely modifiable at runtime. For example, one proxy could be > > reconfigured with new address or have additional interceptors added > > or similar. Those shouldn't affect others. > > > > On option that propably would make sense is to add a fast "clone" > > functionality to the entire service model so we could cache one, and > > then clone it whenever one is really needed. All the individual > > versions could be modified and not affect the original. However, > > doing that would be quite a bit of work as there are a LOT of > > classes that would need to be updated to support that. > > > > Patches towards that end would be great. :-) > > > > Dan > > > > On Monday 03 March 2008, Christopher Cheng wrote: > > > wsdl is indeed cached in WSDLManagerImpl.definitionsMap > > > > > > After reading the codes, I have some questions. My workstation is > > > a PentiumD 3GHz with 1.5GB RAM > > > > > > In the class > > > "org.apache.cxf.service.factory.ReflectionServiceFactoryBean.build > > >Serv iceFromWSDL(String url)", > > > "setService(factory.create());" takes 3 seconds > > > "getDataBinding().initialize(getService());" takes 2 seconds > > > > > > These 2 methods are called even in 2nd calls. Can you also cache > > > the services perhaps using jakarta commons-pool? or eh-cache? > > > > > > By the way, I found that the wsdl is put into the definitionMap > > > twice if " WSDLManagerImpl.getDefinition(URL url)" is called. > > > First in "getDefintion(URL url)" at line 147 and second in > > > "loadDefinition(String url)" at line 201. > > > > > > > > > On Mon, Mar 3, 2008 at 4:22 PM, Christopher Cheng < > > > > > > [EMAIL PROTECTED]> wrote: > > > > wsdl is indeed cached in WSDLManagerImpl.definitionsMap > > > > > > > > After reading the codes, I have some questions. My workstation > > > > is a PentiumD 3GHz with 1.5GB RAM > > > > > > > > In the class " > > > > org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buil > > > >dSer viceFromWSDL(String url)", > > > > "setService(factory.create());" takes 3 seconds > > > > "getDataBinding().initialize(getService());" takes 2 seconds > > > > > > > > These 2 methods are called even in 2nd calls. Can you also cache > > > > the services perhaps using jakarta commons-pool? or eh-cache? > > > > > > > > By the way, I found that the wsdl is put into the definitionMap > > > > twice if " WSDLManagerImpl.getDefinition(URL url)" is called. > > > > First in "getDefintion(URL url)" at line 147 and second in > > > > "loadDefinition(String url)" at line 201. > > > > > > > > > > > > > > > > On Mon, Mar 3, 2008 at 9:43 AM, Willem Jiang > > > > <[EMAIL PROTECTED]> > > > > > > > > wrote: > > > > > Hi, > > > > > > > > > > I just went through the code, we really cache the WSDL > > > > > definition in CXF. > > > > > Could you send your test case and wsdl file to me ? I may need > > > > > to trace it for more information. > > > > > > > > > > Regards, > > > > > > > > > > Willem > > > > > > > > > > Christopher Cheng wrote: > > > > > > I think the issue is still there. I used a for loop to > > > > > > execute the > > > > > > > > > > same > > > > > > > > > > > call, all takes approximately the same time to create > > > > > > service. I guess > > > > > > > > > > that > > > > > > > > > > > the service itself is not cached. > > > > > > > > > > > > On Sun, Mar 2, 2008 at 11:43 AM, Willem Jiang > > > > > > <[EMAIL PROTECTED]> > > > > > > > > > > > > wrote: > > > > > >> Here is the JIRA[1] which describe the same thing that you > > > > > >> want. I don't know if it was really resolved, could you try > > > > > >> the latest released CXF 2.0.4 for it. > > > > > >> > > > > > >> If the issue is still there, please let me know , I will > > > > > >> put it to my next week todo list. > > > > > >> > > > > > >> [1]https://issues.apache.org/jira/browse/CXF-699 > > > > > >> [2]http://cwiki.apache.org/CXF/download.html > > > > > >> > > > > > >> Willem. > > > > > >> > > > > > >> Christopher Cheng wrote: > > > > > >>> I am migrating from Axis1.2 to CXF 2.0.3 > > > > > >>> > > > > > >>> I understand that it will take a long time to build for > > > > > >>> the first > > > > > > > > > > time. > > > > > > > > > > >> What > > > > > >> > > > > > >>> I am wondering is that why it takes so long for the second > > > > > >>> and third > > > > > >> > > > > > >> time? > > > > > >> > > > > > >>> Is there any caching of services? Axis does not seem to > > > > > >>> have this > > > > > > > > > > issue. > > > > > > > > > > >>> Christopher Cheng wrote: > > > > > >>>> Attached is the log > > > > > >>>> > > > > > >>>> ----- Original Message ----- > > > > > >>>> From: "Willem Jiang" <[EMAIL PROTECTED]> > > > > > >>>> To: <[email protected]> > > > > > >>>> Sent: Saturday, March 01, 2008 8:53 PM > > > > > >>>> Subject: Re: service caching? > > > > > >>>> > > > > > >>>>> Hi > > > > > >>>>> > > > > > >>>>> Could you set the logger level to FINE ? > > > > > >>>>> So we can get more information about the service > > > > > >>>>> publishing. > > > > > >>>>> > > > > > >>>>> Willem. > > > > > >>>>> > > > > > >>>>> Christopher Cheng wrote: > > > > > >>>>>> When I call the service as a client, it takes 5 seconds > > > > > >>>>>> to load. > > > > > > > > > > I am > > > > > > > > > > >>>>>> not > > > > > >>>>>> sure whether it takes 5 seconds to create the service > > > > > >>>>>> or it takes > > > > > > > > > > 5 > > > > > > > > > > >>>>>> seconds > > > > > >>>>>> to look up for ciper filters. I am wondering if the > > > > > >>>>>> services are cached... > > > > > >>>>>> Feb 29, 2008 2:14:42 PM > > > > > >>>>>> org.apache.cxf.service.factory.ReflectionServiceFactory > > > > > >>>>>>Bean buildServiceFromWSDL > > > > > >>>>>> INFO: Creating Service > > > > > >>>>>> {https://webservices.sabre.com/websvc}OTA_HotelAvailSer > > > > > >>>>>>vice<https://webservices.sabre.com/websvc%7DOTA_HotelAva > > > > > >>>>>>ilService> > > > > > >>>>>> <https://webservices.sabre.com/websvc%7DOTA_HotelAvailS > > > > > >>>>>>ervic e> > > > > > > > > > > <https://webservices.sabre.com/websvc%7DOTA_HotelAvailService> > > > > >from > > > > WSDL: > > > > > >>>>>> file:/C:/Java/abacus-webconnect-1.14.0.rc1 > > > > > >> > > > > > >> /wsdl/OTA_HotelAvailLLS1.4.1RQ.wsdl > > > > > >> > > > > > >>>>>> Feb 29, 2008 2:14:47 PM > > > > > >>>>>> org.apache.cxf.transport.https.SSLUtils getCiphersuites > > > > > >>>>>> INFO: The cipher suites have not been configured, > > > > > >>>>>> falling back to > > > > > >> > > > > > >> cipher > > > > > >> > > > > > >>>>>> suite filters. > > > > > >>>>>> Feb 29, 2008 2:14:47 PM > > > > > >>>>>> org.apache.cxf.transport.https.SSLUtils > > > > > >>>>>> getCiphersFromList INFO: The cipher suites have been > > > > > >>>>>> set to > > > > > > > > > > SSL_RSA_WITH_RC4_128_MD5, > > > > > > > > > > >>>>>> SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_DES_CBC_SHA, > > > > > >>>>>> SSL_DHE_RSA_WITH_DES_CBC_SHA, > > > > > >>>>>> SSL_DHE_DSS_WITH_DES_CBC_SHA, > > > > > >>>>>> SSL_RSA_EXPORT_WITH_RC4_40_MD5, > > > > > > > > > > SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, > > > > > > > > > > >>>>>> SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, > > > > > >>>>>> SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, > > > > > >>>>>> SSL_RSA_WITH_NULL_MD5, SSL_RSA_WITH_NULL_SHA, > > > > > >>>>>> SSL_DH_anon_WITH_RC4_128_MD5, > > > > > >>>>>> TLS_DH_anon_WITH_AES_128_CBC_SHA, > > > > > > > > > > SSL_DH_anon_WITH_3DES_EDE_CBC_SHA, > > > > > > > > > > >>>>>> SSL_DH_anon_WITH_DES_CBC_SHA, > > > > > >>>>>> SSL_DH_anon_EXPORT_WITH_RC4_40_MD5, > > > > > >>>>>> SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA, > > > > > >>>>>> TLS_KRB5_WITH_DES_CBC_SHA, TLS_KRB5_WITH_DES_CBC_MD5, > > > > > >>>>>> TLS_KRB5_EXPORT_WITH_RC4_40_SHA, > > > > > >>>>>> TLS_KRB5_EXPORT_WITH_RC4_40_MD5, > > > > > > > > > > TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, > > > > > > > > > > >>>>>> TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5. Feb 29, 2008 > > > > > >>>>>> 2:14:48 PM > > > > > > > > > > org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallba > > > > >ckon Close > > > > > > > > > > >>>>>> I have put this in my cxf.xml as in > > > > > >>>>>> http://cwiki.apache.org/CXF20DOC/client-http-transport. > > > > > >>>>>>html , but > > > > > > > > > > it > > > > > > > > > > >>>>>> doesn't > > > > > >>>>>> help... <http:conduit name="*.http-conduit"> > > > > > >>>>>> <http:tlsClientParameters > > > > > >>>>>> secureSocketProtocol="SSL"> <sec:cipherSuitesFilter> > > > > > >>>>>> <!-- these filters ensure that a > > > > > >>>>>> ciphersuite with export-suitable or null encryption is > > > > > >>>>>> used, but exclude anonymous Diffie-Hellman key change > > > > > > > > > > as > > > > > > > > > > >>>>>> this is vulnerable to man-in-the-middle > > > > > >>>>>> attacks > > > > > > > > > > --> > > > > > > > > > > >>>>>> <sec:include>.*_EXPORT_.*</sec:include> > > > > > >>>>>> > > > > > >>>>>> <sec:include>.*_EXPORT1024_.*</sec:include> > > > > > >>>>>> <sec:include>.*_WITH_DES_.*</sec:include> > > > > > >>>>>> <sec:include>.*_WITH_NULL_.*</sec:include> > > > > > >>>>>> <sec:exclude>.*_DH_anon_.*</sec:exclude> > > > > > >>>>>> </sec:cipherSuitesFilter> > > > > > >>>>>> </http:tlsClientParameters> > > > > > >>>>>> </http:conduit> > > > > > >>>> > > > > > >>>> http://www.nabble.com/file/p15773252/cxf.log cxf.log > > > > -- > > J. Daniel Kulp > > Principal Engineer, IONA > > [EMAIL PROTECTED] > > http://www.dankulp.com/blog -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
