Hmm... if you are getting an error at that point, it looks like the mtom 
stuff isn't working.  With JAXB, non-attached base64 data is indeed 
completely in memory.  It's actually worse than that.   It reads it in 
as one big string and then parses the string into a byte[] so it's in 
memory as both the string and the byte[].   I keep meaning to log an 
issue with the jaxb team about that.   :-(

However, with attachments, that shouldn't be the case.   We stream the 
attachement directly when we can (they are processed in the order they 
occur on the wire) or, if the attachment hits a certain threashold (I 
think 64K by default, I'd have to check), it starts using temporary 
files on disk.  

Is there any way you could send small file and tcpdump the wire to see if 
attachments really are being sent?

Dan



On Friday 31 August 2007, Verachten Bruno wrote:
> Hi,
>
> > > Did I miss something, or is it just not possible to send big
> > > files?
>
> I finally found why sending big files didn't work:
> java.lang.OutOfMemoryError: Java heap space
>       at
> com.sun.xml.bind.DatatypeConverterImpl._parseBase64Binary(DatatypeConv
>er terImpl.java:569)
> Does it mean the complete content of the file is in memory?
>
> Thanks in advance,
>
> Bruno Verachten



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to