Service Pack 6 corrects the following printer pooling problems:
Print jobs hanging on a printer in a printer pool did not resume after the error condition has been resolved.
Print jobs were sent to a pool printer even if the printer was not available.
Print jobs that were not started after x time, were not rerouted.
Two new registry entries have been created at: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers
RestartJobOnPoolError, a type REG_DWORD, is the number of seconds after which a hung job in the pool should be restarted if the error has not been corrected.
RestartJobOnPoolEnabled, a type REG_DWORD, toggles the restart behavior. A data value of 0 disdables it. A data value greater than 0 enables the behavior. If RestartJobOnPoolEnabled is enabled and RestartJobOnPoolError is 900, 15 minutes, the following behavior should be expected:
If you click Retry, the job is restarted after 15 minutes.
If you click Cancel, the job is deleted.
If you ignore the dialog, the job is restarted after 15 minutes and the dialog is closed.
If RestartJobOnPoolEnabled is 0, disabled, the dialog must be responded to.
If the error persists beyond RestartJobOnPoolError, the job is redirected to another port.
If the error is cleared before RestartJobOnPoolError seconds, printing should continue on this port.
If SNMP is disabled, the printer doesn't support it, is turned off, or RestartJobOnPoolError is disabled, the job waits on this port.
The Port monitor is responsible for communicating printer status to the spooler.