1069483 - Error occured in CreateDCW

Symptom
The system issues an error message in the trace of the sapwin.dll:
Error: CreateDCW failed: The operation completed successfully. Or the system issues an equivalent error message that corresponds to the language setting.

After this error occurs, you cannot print on the affected printer until SAPSprint service restarts.


Other Terms
CreateDCW, CreateDC, SAPSprint, StartPage failed, EndPage failed


Reason and Prerequisites
The problem can only occur if you use a SAPWIN device type to print. The output is executed through a Windows API using a Windows printer driver.  If an error occurs with one of the printer drivers (for example, memory is not released), the problem described above may occur. This error occurs mainly when you call CreateDC but it may also occur in other Windows GDI calls. The messages in the trace are similar to those described above.

This problem is not caused by the SAP source code and therefore an immediate correction is not possible. The problem is the print drivers that are not designed for mass processing.
In addition, analyzing this problem is very difficult because it cannot be reproduced and because it occurs only after the service experienced a long runtime. You can use the workarounds described below to at least minimize the consequences of the problem.


Solution

SAP recommends the following solution:
    1. Apply the latest SAPSprint patch. For more information, also see Note 927074.
    2. Set the option "Use OMSPRINT" to the value 1. The option is available as of SAPSPrint 720 patch 5; as of SAPSprint patch 6, you can edit this on the "SAPWIN Processing" tab page of the "Options Editor". If you activate the option, the critical processing is moved to a separate process.  This is restarted and ended again for each print job. This should prevent the problem.
    3. If possible, schedule the restart of the service for a time when printing is not taking place. The probability of the problem occurring increases as the runtime of the service increases.
    4. As a result of the automatic restart of SAPSprint Services, the SAPSprint process is available again after a very short time. However, due to the short period of unavailability, all printers that are defined on the SAPSprint server in the SAP system are blocked for about 5 minutes. This is not necessary and, depending on the amount of print requests, may lead to an accumulation of jobs. The following profile parameters may affect how long a printer is blocked for:
              rspo/tcp/retrytime = 1
              rspo/host_spool/check_retries = 5
              rspo/lpq/temp_disable_time = 1
              If you shorten retrytime and temp_disable_time (for example, to 1), this prevents the printers being blocked in almost all cases. You must change these profile parameters only if you are using SAPSprint as the print server. If you use another print server that does not automatically restart, you must use the default values.
              SAPSprint restarts automatically after the CreateDC error occurs.  If you do not want this to occur for whatever reason, you can deactivate it by setting the option "IgnoreDCError" to 1.  Note: Automatic restart works only within certain limits. If the problem occurs too often, the system response is no longer as required. 

No comments: