By using this web site, you agree to all terms and conditions for acceptable use.

ServiceLedger KnowledgeBase Knowledgebase Home Page > ServiceLedger > Technical | Contact Us

Search the Knowledge Base Browse by Category

ServiceLedger provides this content as-is for self help support purposes. ServiceLedger assumes no liability for any steps you take based on the directions in our knowledge base, and assumes that you have the knowledge to determine whether a given step is appropriate for your situation. Certain solutions can affect third-party software that ServiceLedger relies on or integrates with; it is your responsibility to consult with the documentation or publishers of such third-party software to understand whether any changes suggested here will have negative effects on other applications.


(T0352) Setting up the Automation Server to handle a large number of jobs

Would you like to...

Print this page
Email this to a friend

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.

http://deusexmachina.org.uk/evdoco/event.php?event=124
http://pitss.com/us/2012/10/08/frm-93552-and-windows-error-a-desktop-heap-allocation-failed/

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:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems

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:

https://blogs.technet.microsoft.com/askperf/2007/07/24/sessions-desktops-and-windows-stations/
https://blogs.technet.microsoft.com/markrussinovich/2010/02/24/pushing-the-limits-of-windows-user-and-gdi-objects-part-1/
http://windowsitpro.com/windows-client/conquer-desktop-heap-problems

https://www.ibm.com/support/knowledgecenter/en/SSZJPZ_11.5.0/com.ibm.swg.im.iis.productization.iisinfsv.install.doc/topics/wsisinst_config_winreg.html
https://support.microsoft.com/en-us/help/126962/-out-of-memory-error-message-appears-when-you-have-a-large-number-of-programs-running

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.


Related Questions:

Attachments:

No attachments were found.


ServiceLedger KnowledgeBase Copyright © 2019 support.serviceledger.com
Powered by AcitveKB Knowledgebase Software