Load Balancing Algorithms and more

3 January 2022

The 2022 release of Print Distributor is here. This is our annual feature relase, updates through the rest of the year tend to be compatibility updates and bug fixes.

The biggest changes are in the Load Balancing action. There are several new properties that give you finer control over how it spreads the load across a printer pool. You can now tell it to send consecutive documents from the same user to the same printer. This means users won’t see a batch of documents spread across the pool.

There is also a property for selecting the load balancing algorithm. Previously Print Distributor used a round robin algorithm that sent each document to the next printer in turn. This is still the default but you can also choose a random algorithm or a load based algorithm. The load based algorithm attempts to keep the printers usage balanced over time.

The log window has seen some cosmetic improvements and the number of entries has been expanded. Log files now include version information and the logging around sending email and stopping and starting the service have been expanded.

The Run Program action now allows you to pipe the raw print file into stdin of the program you are running and use stdout as the raw print file for subsequent actions. This is useful if you are manipulating the raw print stream in some way. Additionally you can check the return value from the program and optionally throw and error if it is non zero.

The Reprint, SendMail and DirectReprint actions all support the Retry property.

The scope of variables has been tightened up in the PowerShell and Script actions and the action group now has its own scope. To help with this the PowerShell action supports $context.SetValue which checks up the scope chain to see if the value already exists and sets it there if it can, otherwise it sets the value locally. Also the PowerShell method $context.CreateLocalValue always creates a value locally even if it exists further up the scope chain.

Validation of the Accumulate is improved as well as the cleanup of teporary files when it is deleted.

The raw print dialog remembers the last printer used and the list of printers is sorted.

A new modulo filter applies the modulo function on numeric variables such as the serial number. This allows you to constrain the maximum value of the serial number.

We removed another 3rd party dependency (ActiveScriptHost) and replaced it with our own code.

Backing up the project with system info waits longer for msinfo32.exe to complete.

The validation of port numbers on the standard and direct printers is now exhaustive.

When saving a confiuration you can force quit the service if it is blocked.

Fix for superfluous pipe connectivity issue.

Several small UI bugs have been fixed.

As always this is a free update for users of version 5.0 or later.