Am Freitag, den 04.01.2008, 18:19 -0800 schrieb Kyle Sampson:
> I'm currently using CXF 2.0.3. While playing around with WS-Addressing, I've
> noticed a number of errors that occur when sending lots of messages.
Here, "lots of messages" = "messages being sent in a while(true) loop"
> I've
> been able to reproduce them by making minor changes to the ws_addressing
> sample provided with CXF.
>
> During these tests, I turned off logging for anything less than WARNING. In
> Client.java, I changed the following lines:
>
> implicitPropagation(port);
> explicitPropagation(port);
> implicitPropagation(port);
>
> to the following:
>
> int i = 0;
> while(true) {
> port.greetMeOneWay("Kyle");
> i++;
> if(i % 10 == 0) {
> System.out.println("Sent " + i + " messages.");
> }
> }
>
Is there a SOAP client from any web service stack (Metro? Axis?
Spring-WS?) that *could* support nonstop web service calls at the rate
of a while(true) loop? Had CXF failed on your hardware at 7600 or
76,000 attempts instead of just 760, would you also be sending this
email noting a problem, or would that have been within acceptable bounds
of failure?
I'm not sure the problem you're reporting is:
1.) Given our hardware, and CXF's architecture, CXF failed far too soon
within a while(true) loop; i.e., tests with Axis or Metro gave a far
greater number of calls before failing. That would be a legitimate
concern for us to look into.
or
2.) CXF's client and server failed at *anytime* during a while(true)
loop of web service calls--i.e., you'd be sending this email if CXF
clients had failed at iteration 760,000. In this case, before I can be
convinced this is an error, I would first need to see Axis or Metro
clients be able to handle such while(true) rate calls indefinitely.
> After calling greetMeOneWay() around 760 times in this way, I get an
> OutOfMemoryError. I profiled the client and server using YourKit, and both
> the client and server seem to have a memory leak -- the client runs out of
> memory first. The problem seems to be MAPCodec.uncorrelatedExchanges map --
> it's using nearly all the heap memory available.
>
Is that necessarily *leaking*, or just the saving of state for each of
the hundreds of requests waiting for a response?
Regards,
Glen