If you have tasks that seem to be failing and in the task logs you can see messages similar to the following examples:
Information Failed to allocate new QlikView Engine. Retrying (2)! Current usagecount=10 of 10
Error Failed to allocate a QlikView Engine.
Error No QlikView Engine was available after waiting for 45 minutes
Distribute failed with errors to follow. ---> System.NullReferenceException: Object reference not set to an instance of an object.
When a task is triggered, it looks for a QlikView Engine to handles the task. The number of QlikView Engines allowed at the same time is determined by the setting "Max number of simultaneous QlikView engines" which is set up in the Distribution Service settings in the Management Console. The default is 4 but it is possible to have more if the Windows resources allow.
When you see these error messages in the log files, a common cause is that all of the QVB's were already busy running other tasks when the failed task was triggered. It is recommended to only trigger a number of tasks at one time equal to the amount of resources you have available to handle them.
To this end, it is recommended to stagger the schedule of your tasks so they do not all start at the same time, or to build task chains. A task chain is when you create a series of tasks that are triggered on the success of the previous task (Task B is triggered on the success of Task A, and so on). That way you don't have more tasks trying to run than you have resources available to handles them.