Before applied the patch of Stefano or after ? bye Norman
Am Freitag, den 02.06.2006, 09:48 +0000 schrieb Bernd Fondermann (JIRA): > [ > http://issues.apache.org/jira/browse/JAMES-512?page=comments#action_12414390 > ] > > Bernd Fondermann commented on JAMES-512: > ---------------------------------------- > > a db configuration runs into memory problems (Xmx=64m) after less than two > hours, too. > > (this is a setup where 500 mails are created per minute, which is quite a > load: 30 000 mails/hr!) > > > > > > > > OutOfMemoryError -- object not released. > > ---------------------------------------- > > > > Key: JAMES-512 > > URL: http://issues.apache.org/jira/browse/JAMES-512 > > Project: James > > Type: Bug > > > Components: MailStore & MailRepository > > Versions: 2.2.0 > > Environment: windows XP, > > Java 1.5.0_06 > > Reporter: Quande Ren > > Assignee: Noel J. Bergman > > Priority: Critical > > Fix For: 2.3.0a4 > > Attachments: james-512.patch, picture.GIF > > > > I use the file system to store the emails. > > When I run the James for a long time, the james server used more and more > > heap memory, eventually it runs out of memory and refuse to receive email. > > only restart the james will work. > > I used JProfile Memory Debugger(you can get the trial version from > > www.quest.com) and found a clue. the object allocated from following code > > at line 92 does not always get released, cause the memory been used up > > eventually. I will attach a picture file showing the call stack. > > 91, final OutputStream outputStream = getOutputStream( key ); > > 92, final BufferedOutputStream stream = new > > BufferedOutputStream( outputStream ); > > 93 > > 94, final Object o = m_outputs.get( key ); > > 95, if( null == o ) > > 96, { > > 97, m_outputs.put( key; stream ); > > 98, } > > 99, else if( o instanceof ArrayList ) > > 100, { > > 101, ( (ArrayList)o ).add( stream ); > > 102, } > > 103, else > > 104, { > > 105, final ArrayList list = new ArrayList(); > > 106, list.add( o ); > > 107, list.add( stream ); > > 108, m_outputs.put( key; list ); > > 109, } > > 110 > > 111, return stream; >
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil