8.5.11

SAP Note 25528 - Parameter rdisp/max_wprun_time

Symptom:

The meaning of parameter rdisp/max_wprun_time is not clear.

Other terms

TIME_OUT, timeout, SY 098, Time limit exceeded, instance profile, SM50

Reason and Prerequisites

If a work process terminates with a timeout or if transactions and reports terminate with message SY 098: "Time limit exceeded", this may be due to the parameter mentioned above.
Furthermore, transaction SM50 may display reports that were started in dialog mode and may display runtimes (in the Time column) that are far longer as defined in rdisp/max_wprun_time.

Solution

The parameter rdisp/max_wprun_time was introduced to intercept endless loops and other UNINTENDED long-running transactions.

Technical information about the parameter rdisp/max_wprun_time:

The parameter rdisp/max_wprun_time sets a flag in shared memory, which is checked regularly by the ABAP/4 interpreter. When the time in seconds defined by the value of the rdisp/max_wprun_time parameter is exceeded, all dialog transactions are terminated when the next ABAP/4 command is submitted.
In this context, note the following recommendations:

  • Every program that calls up a "COMMIT WORK." at regular intervals resets its clock to 0 and can have longer run times than defined by the parameter rdisp/max_wprun_time.
  • You cannot check the runtime for a transaction that is waiting at a database lock or semaphore. You can use transaction SM50 to observe this behavior by choosing "CPU" to display the CPU time. The CPU time does not increase in this case because the work process is actively waiting.
  • As of Release 4.6, running database queries can be terminated. Therefore, a program is already terminated after rdisp/max_wprun_time seconds have run. Only if the termination of the database query fails, the clock is reset to 0 and the process can continue running for a short period of time. If this (short) period is exceeded again, the process is exited hard.
  • When you function module TH_REDISPATCH, the clock is reset, but a COMMIT is forced. The function module only resets the clock if the process is somewhere near the runtime limit.

Remark: You must not set this parameter to 0. If you do so, there will be no time limit. This will avoid the error message mentioned above, but endless loops will block the work processes forever. This can eventually lead to a system standstill. Usually, there is no need to change the standard setting 600 (10 minutes).
Also read the parameter documentation in transaction RZ11.

No comments:

Post a Comment