13 November 2014
We have had a few customers asking how the Failover action in Print Distributor decides it needs to failover to the next action, hopefully this post will give you a clearer view of the process.
The purpose of the Failover is to try each of its child actions in turn until one succeeds, if they all fail then the Failover fails. It does this in two stages that are slightly different depending on the child actions.
In the first stage the Failover asks the child action if it is available, if it is unavailable then the Failover skips to the next action. In the second stage the Failover runs the action, if this succeeds then the Failover stops at this point as we would expect. However if it fails then the Failover moves on to the next child action.
The Reprint action responds to the first stage by checking the status of the printer in the Windows print spooler. You can see this status yourself by opening the print queue in Windows Explorer. If the spooler reports back that the printer is paused, offline or has some error condition then the Reprint reports this back to the Failover and the Failover steps over it to the next action. It is only the Reprint action that does this, all other actions always report back that they are available.
Some actions such as the Reprint are unlikely to fail the second stage, however others such as the Write File action could fail through lack of disk space or a broken network connection.
The Reprint action is dependent on the print spooler in Windows reporting the status of the printer correctly. This is usually updated promptly but it is very dependent on the printer driver of the destination printer and how the printer is physically connected. Print Distributor never talks directly to the printer so there can be rare occaisions where the printer is down but the document still gets spooled.
The Failover is quite flexible in its child actions, so you could have a Write File action as the first child and if that fails the second action could be a Send Mail action to send out an alert email.