cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nepali, Sonam (GE Healthcare, consultant)" <Sonam.Nep...@ge.com>
Subject RE: CachedOutputStream writing to temp files for large messages
Date Mon, 17 Aug 2009 19:39:57 GMT
In CXF 2.1.3 version, the CachedOutputStream does not delete the
temporary files that were created.  This leads to proliferation of
temporary files residing in the file systems.  Wouldn't it be better if
the temporary files created during LoggingInInterceptor and the
LoggingOutInterceptor be deleted after being done with the message?  Is
there a project plan for this deletion of temporary files in CXF created
in LoggingInInterceptor and LoggingOutInterceptor?

My other solution is to grab the source and modify the Interceptor
myself.

thanks

Sonam 
 

-----Original Message-----
From: Daniel Kulp [mailto:dkulp@apache.org] 
Sent: Friday, August 14, 2009 2:06 PM
To: users@cxf.apache.org
Cc: Nepali, Sonam (GE Healthcare, consultant)
Subject: Re: CachedOutputStream writing to temp files for large messages

On Thu August 13 2009 6:26:06 pm Nepali, Sonam (GE Healthcare,
consultant)
wrote:
> Hello
>
> What is the difference in that CachedOutputStream.java writes the 
> large messages to the file versus for smaller size messages that are 
> less than
> (64 * 1024) bytes?  If I set a
> "org.apache.cxf.io.CachedOutputStream.Threshold" property to about 5 
> MBs, will that potentially have any negatice impact on performance?

The two areas it impacts are:

1) By allocating larger objects and holding them in memory, it reduces
the 
number of concurrent requests that can be processed.    For example, if
you 
set your jvm max memory to -Mx256M or so, you obviously can have less
than 50 
requests outstanding (actually much less due to overhead itself and
such).   
With 64K max before going to disk, many more requests can be in flight.

2) Garbage collection - lots of small allocations are generally better
for the 
garbage collector.   If the message takes a while to process, it may get
moved 
from the short lived space to the middle aged space (or even the old gen

space).   Each of those would require a copy.   Large allocations tend
to 
force the gc to run more often as well.

Neither are really a huge deal though if you know what the
characteristics of your interactions are.

Dan



> Basically, I want to get around the problem for the CachedOutputStream

> from creating temp files for large messages.
>
> thanks
>
>
> Sonam
>
> CXF user

--
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Mime
View raw message