Announcement Announcement Module
Collapse
No announcement yet.
Performance with 1Mbyte Soap messages Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performance with 1Mbyte Soap messages

    Hi,

    in my project I have to process large soap messages up to 1 Mbyte size. I use Spring WS-API 1.5.1 with a MessageEndpoint., but the performance is really poor. Looking into the logs I can see the bottleneck of approx. 10 seconds, it is within the Spring WS-API (ReceiverHandlerAdapter => Accepting incoming. What does Spring do here ? The rest of the application logik needs only 2 seconds !!

    Thanks for any help !

    mitch

    log:

    26.06 11:06:22 [ceiverHandlerAdapter] DEBUG: Accepting incoming [org.springframework.ws.transport.http.HttpServletC onnection(at)b95f72] to [... myService]
    26.06 11:06:32 [] [sageTracing.received] DEBUG: Received request [SaajSoapMessage {...}myRequest]
    26.06 11:06:32 [] [QNameEndpointMapping] DEBUG: Looking up endpoint for [{...}myRequest]

  • #2
    Hi,

    Spring WS need to inspect the root element of the XML message. When you use a DOM approach this could take a while. (It has to store the message into memory.) If you want to process large messages you could use a streaming approach (StaX).

    Comment


    • #3
      I suspect that is the problem too. By default spring-ws will use a SAAJ message factory which will effectively parse your 1MB request into a dom-like tree before transforming it to whatever your endpoint needs. Try using an Axiom message factory (see AxiomSoapMessageFactory in the reference doc) with payload caching turned off, so that it will stream the request to your endpoint.

      Comment


      • #4
        Response streaming is not implemented yet

        http://jira.springframework.org/browse/SWS-352

        Comment

        Working...
        X