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.