Consultor Eletrônico



Kbase 21684: SYSTEM ERROR: MAXSUBP: too many subprocesses. (357)
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   07/01/2004
Solution ID: 21684

FACT(s) (Environment):

Progress 4GL

SYMPTOM(s):

Running code that contains OS-COMMAND with NO-WAIT value

System error: MAXSUBP: too many subprocesses (357).

CAUSE:

The error occurs because Progress has a 4GL internal limit of 20 sub processes for most operating systems.

OS-COMMAND statement creates a sub-process. Normally that sub process executes and goes away and the next statement in the 4GL after the OS-COMMAND statement will execute. Using the NO-WAIT causes Progress to immediately pass control back to next statement after the OS-COMMAND without waiting for the operating command to terminate.

If the concurrent sub-processes exceed the defined internal Progress limit, the MAXSUBP error will appear. The internal limit is 60 for VAX, ULTRIX, DECSTN and PYRAMID. All others are 20.

For example, running the following will product the MAXSUBP error:

def var i as int.
Do i = 1 to 30:
OS-COMMAND NO-WAIT value ("sleep 30").
end.

def var i as int.
repeat i =1 to 30:
input through value ("my command &").
input close.
end.

FIX:

This is not a limit that can be adjusted or changed at the kernel level, as it is an internal limit within the Progress 4GL source code.