Mailcaster Recovery

When an unexpected event (such as a system crash or power failure) occurs while Mailcasters are running, jobs can be left in a “hanging” state. these mail jobs must be recovered and, if necessary, resent. The two types of recovery are:

  • Automatic: The Mailcaster performs the recovery operation.

  • Manual: The Administrator performs the recovery operation.

Note: Recovery applies only to small and child jobs. Note also that Small Job Only Mailcasters will not recover child jobs. This is because in order to recover a child job, the Mailcaster must process the entire job, and its job size could be greater than the Mailcaster’s maxJobSize.

In automatic recovery, the Mailcaster recovers a hanging job using the recover log table from the database. Depending on the time the hang occurred, it is possible that the recovering process might send out one or more duplicate emails. The reason it might do this is because, when using the recovery table to reconstruct the job, the Mailcaster can encounter a gap between the sending of the mail and the writing to the recovery log, thus resulting in the sending of at most one duplicate email per send mail thread.

To specify automatic recovery, set the automaticMailJobRecovery configuration parameter to true.

In manual recovery, the Mailcaster does not try to recover the hanging job. Instead, the Administrator must manually restart the job using Control Center. To do this, stop the job and then restart it. This changes the job’s status to RECOVERING, which allows a Mailcaster to pick it up and create a new one from it. This might be desirable, for example, if Mailcasters were being run in different time zones. The new job is identical to the old one except that it has a new Job ID number and lists the original Job ID as its parent job.

To specify manual recovery, set the automaticMailJobRecovery configuration parameter to false.

See Understanding Control Center.

In some cases, you might not want a hanging mail job to be recovered. For example, if the job in question was a broadcast email announcing special sale prices good for this Saturday only, it would not make sense to recover the job if it was hanging beyond the end of the business day on Saturday. Likewise, you would not want to send a reminder to attend a seminar after the seminar is over. To handle these time sensitive situations, you can set a time period in hours after which no attempt will be made to recover the mail jobs.

To specify a recovery expiration, set the jobRecoveryExpireInHours configuration parameter to the number of hours after which you no longer want mail jobs recovered.