On Fri, Feb 5, 2010 at 11:26 PM, Nitin Gupta
<[email protected]>wrote:
> One thing I could not understand, Use 3 layers of RemoteDelivery mailets.
> How to set this up? Can this be done in the Conf files?
>
Yep, this can be done in the configuration files. I am sure this is not how
the original designers envisioned it being used, but the following
configuration allows me to have a cascading group of RemoteDelivery mailets:
<processor name="transport">
...... Lots of stuff here ....
<mailet match="All" class="RemoteDelivery">
<debug>false</debug>
<outgoing> file://var/mail/outgoing/ </outgoing>
<delayTime>30 minutes</delayTime>
<maxRetries>1</maxRetries>
<deliveryThreads>10</deliveryThreads>
<sendpartial>true</sendpartial>
<bounceProcessor>remoteDeliveryMailet-02</bounceProcessor>
<mail.smtp.localhost>my.domain.name</mail.smtp.localhost>
</mailet>
</processor>
<!--
remoteDeliveryMailet-02 provides a 2nd chance for delivery. We use a
separate
mailet to reduce the size of the queues so that delivery can happen
faster.
-->
<processor name="remoteDeliveryMailet-02">
<mailet match="All" class="RemoteDelivery">
<debug>false</debug>
<outgoing> file://var/mail/outgoing-02/ </outgoing>
<delayTime>60 minutes</delayTime>
<delayTime>2 hours</delayTime>
<delayTime>3 hours</delayTime>
<maxRetries>3</maxRetries>
<deliveryThreads>5</deliveryThreads>
<sendpartial>true</sendpartial>
<bounceProcessor>remoteDeliveryMailet-03</bounceProcessor>
<mail.smtp.localhost>my.domain.name</mail.smtp.localhost>
</mailet>
</processor>
<!--
remoteDeliveryMailet-03 provides a 3rd chance for delivery. We use a
separate
mailet to reduce the size of the queues so that delivery can happen
faster.
-->
<processor name="remoteDeliveryMailet-03">
<mailet match="All" class="RemoteDelivery">
<debug>false</debug>
<outgoing> file://var/mail/outgoing-03/ </outgoing>
<delayTime>4 hours</delayTime>
<delayTime>4 hours</delayTime>
<delayTime>6 hours</delayTime>
<maxRetries>3</maxRetries>
<deliveryThreads>1</deliveryThreads>
<sendpartial>true</sendpartial>
<bounceProcessor>bounces</bounceProcessor>
<mail.smtp.localhost>my.domain.name</mail.smtp.localhost>
</mailet>
</processor>
We chose to do this because we ran into problems with a single
RemoteDelivery thread having 1000s of messages waiting to be delivered. We
ran into major delays (which we think were caused by locking issues and
inefficiencies in the code) and found this to be a reasonable work-around.
todd
ps
One downside to this is how messages show up in the log. It looks like there
are a whole lot more bounces since that mechanism is used to pass them
between mailets.