The ServiceLedger Automation server is normally able to handle about 10 simultaneous jobs when run as a Windows Service. If tech portal load exceeds that number, the automation server can fail with error messages like the following:
- System Error Code 8: Not enough storage is available to process this command.
- Out of system resources
- Out of memory
- System error 243: "A desktop heap allocation failed" In the Windows Event Log / Event Viewer
- Event 124 in the Windows Event Log / Event Viewer
If these errors occur, you can test whether the problem is that the service is running out of resources by disabling the service and running the automation server in a user session for a long enough period to see if doing so has eliminated the above errors.
The following websites provide additional details on the situation described above. The ServiceLedger Automation service's ServiceLedger.exe consumes additional USER handles for each job that is opened by design, and past a certain point the maximum number of handles in the "desktop" (desktop heap) for Windows Services is exhausted. The links below cover some techniques that can be used to confirm whether ServiceLedger is the source of the exhaustion or simply a victim of another program consuming a large number of these resources within the Windows Services desktop heap.
If the manual run resolves the issue and/or research on the desktop heap confirms that ServiceLedger.exe is consuming the majority of the non-interactive desktop heap, then you will need to increase the amount of desktop resources allocated to Windows Services in order for the automation service to run successfully. This can be done by adjusting the value of the Windows REG_EXPAND_SZ value under the following following registry key:
The default values for this registry key will vary depending on your operating system. A typical example value is as follows:
%SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
In order to increase the allocated resources used by the ServiceLedger Automation Server and other background services, you will need to adjust the third value of the SharedSection portion of this key to a higher number. In the example above, the original value is 768.
IMPORTANT: Please note that modifying this value incorrectly can your computer unable to boot without advanced technical knowledge such as restoring an older version of the Windows Registry. Please review the linked articles below and make sure you have a clear understanding of how to adjust this value before making any changes. ServiceLedger staff will not change this value on your behalf and cannot accept responsibility for the consequences of making such a change.
We have observed that values ranging from 1280 to 4096 have worked well with other customers in the past, but you are responsible for your own server, know its needs best, and must adjust and review the impacts of changing this value on your own. The following links can help you understand what this value is and how to safely modify it:
IMPORTANT: A reboot is required before any changes to this value will take effect.
Once this modification has been made and the machine rebooted, the automation service should be able to handle a larger number of jobs without failing. If the same failures continue, double-check the value of this registry key and, if it checks out, consider that there could be other programs consuming this resurce besides the ServiceLedger Automation Service.