Page 2 of 2 FirstFirst 12
Results 11 to 15 of 15

Thread: wsdl generation not thread safe?

  1. #11
    Join Date
    Jul 2005
    Location
    Rotterdam, the Netherlands
    Posts
    1,562

    Default

    Damn, I fixed it for Jetty, but didn't check Tomcat.

    I've reopened the issue, and will fix it for 1.0.2. Hopefully, for good this time.
    Arjen Poutsma

    Spring Web Services Dev Lead
    Please read the FAQ

  2. #12
    Join Date
    Jul 2005
    Location
    Rotterdam, the Netherlands
    Posts
    1,562

    Default

    I cannot reproduce this with either Tomcat 6.0.14 and 5.5.23. I used Apache Bench (ab) to request the WDSL of the echo sample app a 1000 times, using 100 concurrent threads. From that test, I get the following:

    Code:
    >ab -n 1000 -c 100 http://192.168.0.2:8080/echo/echo.wsdl
    This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
    Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
    
    Benchmarking 192.168.0.2 (be patient)
    Completed 100 requests
    Completed 200 requests
    Completed 300 requests
    Completed 400 requests
    Completed 500 requests
    Completed 600 requests
    Completed 700 requests
    Completed 800 requests
    Completed 900 requests
    Finished 1000 requests
    Server Software:        Apache-Coyote/1.1                                  
    Server Hostname:        192.168.0.2
    Server Port:            8080
    
    Document Path:          /echo/echo.wsdl
    Document Length:        2060 bytes
    
    Concurrency Level:      100
    Time taken for tests:   2.647 seconds
    Complete requests:      1000
    Failed requests:        0
    Broken pipe errors:     0
    Total transferred:      2188186 bytes
    HTML transferred:       2062060 bytes
    Requests per second:    377.79 [#/sec] (mean)
    Time per request:       264.70 [ms] (mean)
    Time per request:       2.65 [ms] (mean, across all concurrent requests)
    Transfer rate:          826.67 [Kbytes/sec] received
    Arjen Poutsma

    Spring Web Services Dev Lead
    Please read the FAQ

  3. #13
    Join Date
    Nov 2006
    Posts
    23

    Default

    Thanks Arjen,

    I'll give it another try and double check my tests. If they still fail, I'll give it a try with ApaceBench.

    Ken

  4. #14
    Join Date
    Nov 2006
    Posts
    23

    Default

    Everything looks good. The last test failure was my fault. I hadn't cleaned everything up before testing the update.

    Thank you very much for looking into this, and for resolving the problem so quickly.

  5. #15

    Default Solution..

    Hi,


    I had hit the same issue.

    The exact scenario to reproduce it is: Run a JMeter HTTP GET request test (NOT webservices test) for the wsdl url with thread size (users)=10; ramp-up period=0; loop-count=50

    As already mentioned in this thread, when there are too many concurrent wsdl file requests, the spring app will die since the operations performed during wsdl file generation are not thread-safe.

    The solution is to either cache the wsdl in the client end or better, to do away with the dynamic wsdl generation. The latter one is better if you consider the fact that anyone in your nw could use a jmeter test to down your services :-D

    I would dynamically generate the wsdl file for code or environment change, and serve this file from the services. The spring xml config would change like:

    Code:
    <bean id="myservice" class="org.springframework.ws.wsdl.wsdl11.SimpleWsdl11Definition">
            <constructor-arg value="/WEB-INF/myservice.wsdl.wsdl"/>
    </bean>
    Hope that helps..

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •