On Wed, May 13, 2009 at 2:56 PM, Martin.Bergljung
<[email protected]> wrote:
> Hi,
>
> I now know why my EXPUNGEs did not work.
>
> I was creating a new Mailbox for every call to MailboxManager.getMailbox().
>
> This was because I create 2 different mailboxes dependent on the user's 
> permission.
> Either AlfrescoMailbox or AlfrescoNoAccessMailbox.
>
> I have now changed to cache the mailboxes as you do in TorqueMailboxManager:
>
> private final Map<String, AlfrescoMailbox> m_cachedWritableMailboxes;
> private final Map<String, AlfrescoNoAccessMailbox> m_cachedReadOnlyMailboxes;
>
> That works better as I can see the Outlook UI removing the messages after an 
> EXPUNGE.
> And it is much faster and I save heap space, which I have seen in one or our 
> client installs
> being heavily consumed, returned (GCed) eventually but you risk hitting OOM 
> exceptions.

yep

the legacy MailboxListener stuff means that mailboxes need to be kept
around until all listeners are done. been wondering for a while
whether per mailbox listeners are a good idea...

> However, the Message Sequence Numbers for the expunged messages are not 
> responded with
> in the correct order. I need to check my code and see what is going on.
> What this means is that Outlook can remove messages from the UI that has not 
> really been removed.

MSNs are a real PITA and i doubt that the legacy solution used by
torque and store scales well enough. maintaining lists per client
connection is easiest way to get them right but is very expensive for
large mailboxes and many users.

need a better solution, i think...

- robert

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to