Actually, you're right about the test that used greetMeOneWay().  For some
reason I was thinking it would wait until the server responded.  It would
make sense for one-way calls to not clean up by the time the client method
call returns, since it's working in the background.  760 attempts does seem
to be pretty fast for it to fail though.  For the record, I'm using the
default heap size (64MB).  Should it really use this much memory, or is
something else happening here?

The sayHi() calls on the other hand are not one-way.  I would expect that
after the response comes back from the server, it doesn't need to hold
anything in memory any longer, but the server seems to be increasing the
heap size over time.  The constant random halts between some calls seem
strange too.  Often it would halt for 20-30s on after sending only 20
messages, then resume only to halt again at some later point.  The amount of
time it halts and when they occur vary.

Thanks again for your help.



Glen Mazza-2 wrote:
> 
> 
> 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
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/WS-Addressing-OutOfMemoryErrors-under-load-tp14628989p14673865.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to