Did this article resolve your question/issue?



Running a prowin32.exe as a background process causes extremely slow login times in Windows 2012 R2

« Go Back


TitleRunning a prowin32.exe as a background process causes extremely slow login times in Windows 2012 R2
URL NameRunning-a-prowin32-exe-as-a-background-process-causes-extremely-slow-login-times-in-Windows
Article Number000192682
EnvironmentProduct: OpenEdge
Version: 11.x
OS: Windows 2012 R2
Other: Windows Services
Question/Problem Description
Windows 2012 R2 server has several prowin32.exe processes running which are parented to a Windows service.
Parenting can be done using "srvany" tool, as a task under Task Scheduler, or from any other custom-built service.
Logging in on the server takes a very long time (meaning: several minutes, where 10-20 seconds would be expected)
Windows login is stuck while applying group policies.
Steps to Reproduce
Clarifying Information
The prowin32.exe process itself does not show any performance issues and will run normally.
Same behavior is NOT seen in earlier Windows releases. Up to and including Windows 2008 R2, having sessions parented to a a Windows service does not impact the time it takes to apply group policies at all.
Running the prowin32.exe in batch mode (ie. with -b parameter) doesn't make any difference.

Issue is also seen when forcing a policy update. Following commands can be used in a batch file for testing purposes:
@echo %TIME%
@gpupdate /force
@echo %TIME%

Error MessageWindows is stuck while applying group policies.
Defect/Enhancement NumberDefect PSC00325661
The cause of this issue is that Windows tightened security on what services could do.

prowin32.exe was designed to always assume there a GUI, where Windows services very deliberately (for security concerns) allows no UI.  Progress strongly recommend to move from using prowin32.exe to _progres.exe for this task as _progres.exe was designed to assume there is no UI when -b parameter is used.
Upgrade to OpenEdge 11.6 or later.
The fix must be explicitly activated by adding a key "BatchPeek=no" in the Startup section of the registry/INI file.
Use the character client executable (_progres.exe) instead of using prowin32.exe.

The character client uses a different event loop that doesn't check for the Windows UI messages.
(Since services are expected to run as background tasks, it's assumed that the ABL code being executed is UI agnostic already)
Last Modified Date3/6/2017 4:29 PM
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.