Google Groepen ondersteunt geen nieuwe Usenet-berichten of -abonnementen meer. Historische content blijft zichtbaar.

HELP: Error creating space for command interpreter symbol table

7 weergaven
Naar het eerste ongelezen bericht

Armistead, Jason

ongelezen,
16 dec 1997, 03:00:0016-12-1997
aan

Hi Info-VAXers (and Info-AXPers !!!)

Operating environment is OpenVMS 6.2-1H3 Alpha and DEC PL/I 4.0.

We have a PL/I program which parses a data file and then runs some batch
jobs, which in turn print drawings onto our Postscript printers.

We are getting the message

"Error creating space for command interpreter symbol table"

Which I presume matches with the Identification code of CLISYMTBL.

followed by

"Error activating command interpreter SYS$SYSTEM:DCL
Process quote exceeded"

which I presume is a result of the first. The second error I assume is
an incarnation of "CLIFAIL, error activating command interpreter
'CLI-name'"

This only occurs after about 1000 calls to LIB$SPAWN with the DCL
command line basically being just "SUBMIT /QUEUE=xxxx /PARAM=yyyy
zzzzz.COM", composed by concatenating variuos sub-strings to form the
command line under PL/I. The relevant code fragment is:

PRINT_COM='SUBMIT/QUEUE=DRAWINGS$BATCH/
PARAMETERS=('!!START_PAGE_FILE!!','!!PRINTQ!!')
IMAGE_CMD:PRINT_STARTPAGE.COM';


STS$VALUE=LIB$SPAWN(PRINT_COM);

which to me is very basic indeed.

So, does someone have any ideas as to why the process quotas suddenly
exhaust themselves ? Is something being deducted by the subprocess and
not returned to the parents quotas ? What should I be checking for /
monitoring in the parent ? Is there a patch I'm not aware of ?

So, far, we've deduced that SYSGEN parameters CLISYMTBL and
VIRTUALPAGECNT *might* be involved, but exactly how and WHY it happens
after a long period, I still am not convinced that it's parameter
related, as much as some sort of slow "leak" because of all the spawning
going on

$ mcr sysgen
SYSGEN> SHOW VIRTUAL
Parameter Name Current Default Min. Max. Unit
Dynamic
-------------- ------- ------- ------- ------- ----
-------
VIRTUALPAGECNT 598016 65536 2048 4194304
Pagelets
internal value 37376 4096 128 -262144 Pages

SYSGEN> SHOW CLI
Parameter Name Current Default Min. Max. Unit
Dynamic
-------------- ------- ------- ------- ------- ----
-------
CLISYMTBL 512 512 48 1024
Pagelets D


Regards and seasons greetings

Jason Armistead
armi...@oeca.otis.com

Ferry Bolhar-Nordenkampf

ongelezen,
16 dec 1997, 03:00:0016-12-1997
aan Armistead, Jason

Armistead, Jason wrote:
>
> Hi Info-VAXers (and Info-AXPers !!!)
>
> Operating environment is OpenVMS 6.2-1H3 Alpha and DEC PL/I 4.0.
>
> We have a PL/I program which parses a data file and then runs some batch
> jobs, which in turn print drawings onto our Postscript printers.
>
> We are getting the message
>
> "Error creating space for command interpreter symbol table"
>
> Which I presume matches with the Identification code of CLISYMTBL.
>
> followed by
>
> "Error activating command interpreter SYS$SYSTEM:DCL
> Process quote exceeded"
>
> which I presume is a result of the first. The second error I assume is
> an incarnation of "CLIFAIL, error activating command interpreter
> 'CLI-name'"

If i remember correctly, this is a known bug in LIB$SPAWN (virtual
memory is allocated but not returned). There is a patch for it, contact
Digital.

A temporary solution: include a counter into the PLI program which is
incremented after each LIB$SPAWN. When the counter reaches 1000,
terminate the PLI program. Run the PLI program in a DCL procedure:

$ A:
$ RUN <PLI_PROGRAM>
$ GOTO A

This forces an image run-down after 1000 spawns. The image run-down
ensures that all resources (including virtual memory occupied by
LIB$SPAWN) is freeded correctly.

Greetings, Ferry

--
Ing. Ferry Bolhár-Nordenkampf
Magistrat der Stadt Wien (MA-14) A - 1010 Vienna (Austria)
Phone: +43 1 4000 98632 E-Mail: b...@adv.magwien.gv.at

"Wenn hier einer schuld ist, dann immer nur der Computer."

Gotfryd Smolik

ongelezen,
16 dec 1997, 03:00:0016-12-1997
aan

On Tue, 16 Dec 1997, Armistead, Jason wrote:

+Hi Info-VAXers (and Info-AXPers !!!)
-:)
+Operating environment is OpenVMS 6.2-1H3 Alpha and DEC PL/I 4.0.
[cut]
+We are getting the message
+"Error creating space for command interpreter symbol table"
[...]
+followed by
+
+"Error activating command interpreter SYS$SYSTEM:DCL
+Process quote exceeded"
[...]
+This only occurs after about 1000 calls to LIB$SPAWN with the DCL
+command line basically being just "SUBMIT /QUEUE=xxxx /PARAM=yyyy
+zzzzz.COM", composed by concatenating variuos sub-strings to form the
+command line under PL/I.
[...]
+So, does someone have any ideas as to why the process quotas suddenly
+exhaust themselves ? Is something being deducted by the subprocess and
+not returned to the parents quotas ?

Yes. Some version (VMS 6.X) have a bug and DCL will "eat"
when do a SPAWN. Doesn't know about patches etc. but the bug have
definitely seen.

+ What should I be checking for monitoring in the parent ?

Do a SHOW PROC/QUOTA, do a SPAWN/NOLOG WAIT 0, repeat the SHOW
and compare. One limit probably will decrease of 4 :(

+ Is there a patch I'm not aware of ?

Don't know... The political answer is: upgrade to VMS 7.1 :)

+So, far, we've deduced that SYSGEN parameters CLISYMTBL and
+VIRTUALPAGECNT *might* be involved, but exactly how and WHY it happens
+after a long period, I still am not convinced that it's parameter
+related, as much as some sort of slow "leak" because of all the spawning
+going on

This can be the paging file quota, what was "eat" in spawn...

+Regards and seasons greetings
+
+Jason Armistead
+armi...@oeca.otis.com
+

Regards - Gotfryd

--
=====================================================================
$ ON F$ERROR("LANGUAGE","ENGLISH","IN_MESSAGE").GT.F$ERROR("NORMAL") -
THEN EXCUSE/OBJECT=ME
$! G...@stanpol.zabrze.pl
=====================================================================

Pat Rankin

ongelezen,
17 dec 1997, 03:00:0017-12-1997
aan

[...]

> A temporary solution: include a counter into the PLI program which is
> incremented after each LIB$SPAWN. When the counter reaches 1000,
> terminate the PLI program. Run the PLI program in a DCL procedure:

A much better solution: change the program to call
SYS$SNDJBCW() and directly queue those jobs instead of spawning
any subprocesses in the first place. :-) Not only would that
avoid the quota leak, it would incur substantially less system
overhead.

Pat Rankin, ran...@eql.caltech.edu

0 nieuwe berichten