I have just released version 9 of Zero Day Patch with a couple of interesting features that I am going to detail here.
What is interesting here is not necessarily this new switch, but rather the work that went on to create it. In effect I started from a few customer reported problems: if ZeroDayPatch encounters a problem during the staging (for example not all files can be downloaded) or during the policy creation (the process is choosen as a deadlock victim) then ZeroDayPatch would simply terminate, causing the expected output to be delayed until the next scheduled run.
In order to avoid such problem I decided to catch exceptions around the critical paths (when we stage the bulletin or create the policy) and retry. At first I planned on retrying download and policy creations steps 4 times and exllude the bulletin on failure.
However during the test phase I noticed that the bulletin staging process already retires when a patch cannot be download, with a 180 seconds delay. So retrying a process that already retries with delay didn't make sense and I reverted to skip the bulletin on exception.
For the policy creation retrying up to 3 times still made sense, but as for the stagging excluding the bulletin seemed to be too harsh so I decided to make the feature option.
This new feature comes from one of my customer needs. They are using ZeroDayPatch every month to create the new policies. The new policies are created with a monthly target until they reach maturity (2 month) at which point they are retargeted to a global target (so any computers with the Software Update Agent will always receive applicable updates older than 2 month - whilst the other will be receive depending on the current test cycle and local admin own schedules).
So instead of manually editing all the existing policies to switch the target I thought I'd add the command line switch to simplify operations and reduce the Patch Admin chores.
7.1 and 7.5 builds
Also note that I now attach the 7.1 and 7.5 build to the main download page . Both builds are running the very same code, with only a change in the Altiris.PatchManagementCode.Web.dll references.