Nelso, streaming SOAP is certainly a good idea for addressing some scalability issues. However it also introduces an interesting challenge.
Say you have a service that processes some input and starts streaming output immediately. As it is generating the response SOAP message every byte that is output goes almost immediately to the wire (ignoring caching and/or framing for a second). Now say sometime into the result an error occurs, a database exception, or perhaps a problem in the input stream, oops! The result SOAP stream has already commited itself to be a SOAP body, it can no longer turn itself into a fault because those bytes have gone out over the wire. What to do!? In some ways it would have been nice if the SOAP protocol had put the fault at the end rather than the beginning (SOAP footers?) SOAP 1.2 seems to allow a SOAP fault to appear within a child of the body, but then states "the element has no SOAP-defined semantics" There are certainly problems I would also like to use streaming for, but what to do about faults? - Mark >>The problem is that if I increase the JVM memory, if the request >>length increases too, i will have the same problem. > > Understood. I still don't fully understand how this works in Axis, but > if you really need to solve this problem you should dive into Axis' > support for streaming messages. > > I haven't found all the details, but I put what I know on the Wiki. > If someone knows more, can they please post it here and on the Wiki? > > http://nagoya.apache.org/wiki/apachewiki.cgi?action=edit&id=AxisProjectPages/StreamingService >