Multiple work processes usage

Context

Work processes in SAP are used to execute tasks of different types.

As long as a task runs, its allocated work process will stay busy, until the task completes

For every type of tasks, there are a limited number work processes.

When all work processes are busy, every new task will have to wait until a work process completes its current task.

By example, when that happens for DIALOG tasks, users can experience a very slow response time.

Problem

By design, Redpeaks should never call several programs in parallel on a single SAP system, and therefore never consume more than one or two work processes at the same time, even when a monitor triggers long processing time in SAP.

However, it can happen that when the computing time of a monitor is extremely long (several minutes), Redpeaks user may start using more work processes, up to the maximum allocated.

That can happen when the task exceeds the maximum execution time threshold and is killed by Redpeaks. In most cases, the task gets interrupted in SAP too and the process gets free. But sometimes, the process continues to run.

Few minutes after, the monitor will be executed again, consuming another work process, while the previous one is still running. And it will be killed again...

After few iterations, if monitor schedule is much shorter than computing time, many or all work processes will be used.

How to investigate

Run SM50 transaction in SAP.

Look at the work processes in “running” state associated with the monitoring user.

It should not be more than one or two processes used at the same time.

If it's the case, you need to identify which monitor is causing this.

Look at Redpeaks logs and seek for long running monitors

Most probably, the monitor will be killed systematically, making it easier to detect.

If monitor job retention is active, look for job results in ABORTED state, or with a very long execution time.

How to fix

Start by deactivating the monitor immediately, it is consuming too many resources on the system.

Check its configuration, look for a too long period of analyze.

Check in SAP the potential volume of data addressed by the monitor (number of steps/QRFC/IDOCS, etc...) and do some cleanup if possible.

Increase the timeout allocated to the monitor.