Operating System - OpenVMS
1825242 Members
4514 Online
109679 Solutions
New Discussion юеВ

How many Line a DCL can manage on VMS 5.5

 
Bui_2
Occasional Advisor

How many Line a DCL can manage on VMS 5.5

Hello

I want to kwnow, how many line a DCL in VMS 5.5 can manage

because when a DCL exceed 10 000 lines, the GOSUB command respond -W- the label not found.

and my boss want a proof

where i can find this information

thx all
31 REPLIES 31
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Just created a script of 47500 lines.
No problem on 7.3 and 6.2.

No 5.5 over here.

But did you check the script with dcl_check (freeware cd) ? Most of the time there is a quoting problem when your error is given.

Wim
Wim
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

thx for your quik answer

the error is typpicaly error when you foget the label of your GOSUB command

%DCL-W-IVVERB, unrecognized command verb - check validity and spelling

but the label is here, the first version of script (9200 lines) works well, but when i add other command in the middle of my script (10 027 lines)
the gosub command don't work whereas when i run the first version of my script it run good

and i don't have your freeware i'm just an analyse, i answere the system cell for this thanks
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

scuse the error is

%DCL-W-USGOSUB, target of GOSUB not found - check spelling and presence of label

:b
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Could you post the script ? And the working script too ? Then I can check it.

Wim
Wim
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

ok how?
Karl Rohwedder
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

I'vw just created a DCL procedure like:

$ ws "Hi 1"
$ gosub test
$ ws "Hi 2"
$ exit
$ sh time
...some 12000 more lines
$!
$ test:
$ ws "test"
$ return

and ran it under V5.5-2 without problems, so it is not a problem mit 5.5-2.
Jan van den Ende
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

BUI,

well, there IS a limit, but that is NOT the number of lines of DCL, but the total space in P1 space. That is where (a.o.) your DCL symbols, and your DCL label info, are maintained. And if you have A LOT of symbols and or label, and/or many string symbols with long string valies, THEN P1 space can get exhausted.
My V5.5 experience IS a bit rusty, but IMMSMW, then 5.5 already knew the SYSGEN parameter CTLPAGES. Nowadays it is dynamic, but those details and the 5.5 limits you will have to find yourself.

If on YOUR system you do
$ MC SYSGEN HELP SYS_PARAMS CTLPAGES
that will give the details for YOUR system
(not sure, but maybe SYS_PARAMS was called PARAMS then, but certainly MC SYSGEN HELP
will show you the exact syntax.

The limits for CTLPAGES used to be not really big, but we HAVE had success with it.

Try, and tell us your results.

If this does not help, or does not help enough, you may also get results if you explicitly remove symbols if (maybe temporarily) no longer needed
( $ DELETE/SYMBOL , for global symbols also add/GLOBAL

Jan
Don't rust yours pelled jacker to fine doll missed aches.
Ken Robinson
Valued Contributor

Re: How many Line a DCL can manage on VMS 5.5

I seem to remember that there was a restriction like that in the past. I don't remember the exact details. I think it had something to do with the number of labels between the calling point and the subroutine, not the number of lines. (I may be wrong here)

Is the routine in question in the beginning of your code or at the end?

If you move the code of the subroutine, does that eliminate the error?
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

You can post the script by transferring it to the PC and then use the "browse" button in the reply screen to select the file.

Wim
Wim
Ian McKerracher
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

I had a similar problem this morning but with GOTO instead of GOSUB. I had entered an IF-THEN-ELSE structure between the GOTO and the destination label but I forget to enter the ENDIF. Once I entered this keyword the procedure worked correctly.

Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

thank for your answer

it seem the good way

my boss will be happy

:)
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

this is the procedure, if you can give me more details or information

i want learn the secret's of vms lol

this problem interressed me
Ian Miller.
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

The command SHOW PROCESS/MEMORY will display the statistics about dynamically allocated area in the process control region P1.
This may help to determine if you have an issue with insufficent available space in this area.
____________________
Purely Personal Opinion
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

So, was your problem solved ?

In any case, I ran dcl_check and found :
LINE CODE --DIAGNOSTIC MESSAGE--
676 WCT wrong constant type for comparison
814 INT IF statement not terminated
1339 DL duplicate label "CDENLIVR_MX"
4041 LNF label "RCPTDELOC" not found
4069 LNF label "RCPTDELOC" not found
4099 LNF label "RCPTDELOC" not found
4527 RLI referenced label "EXT_INVE_GB" is in if-group at lines 4539-4630
9869 CRE code cannot be reached due to EXIT at line 9868
Wim
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

no my problem is not resolve i search

thanks for the error msg. but i don't understand why the first GOSUB doesn't work with all the answer in this thread i think the procedure have too many label or symbol

can you test the procedure you may change the firs GOSUB TSTLOGICAL on GOTO TSTLOGICAL and insert en EXIT after the label TSTLOGICAL. if the script work at your home...i definitely don't understand :(
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

DCL went on tilt because of syntax errors.

You should
1) correct all the errors found by dcl_check
2) make sure that the if's are in balance. Check the if's on line 842 and following. I find dubious things around line 862.
3) indent if then else and endif on the same position to find the inbalances.

Wim
Wim
Bui_2
Occasional Advisor

Re: How many Line a DCL can manage on VMS 5.5

then why if i delete any random 800 lines in the middle of script and i run with the change GOSUB command with the exit the first GOSUB work well

labadie_1
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

While this does not answer you problem, I am surprised that you are not in Vms 5.5-2 or 5.5-2 H4, which are supported versions.

And for me, a Dcl procedure should not exceed 20 or 30 lines, so I have never met a similar problem :-)
When it exceeds, I write it in another langage (you have a lot of choice with Vms, C, Pascal, Ada, Python, Perl, Fortran, Cobol...)

Best of luck.
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Labadie,

The only thing a system manager must know is DCL. So I write in DCL and my monitoring is now 4000 lines of DCL. But dcl_check conform.

I I wrote a program in lets say ALGOL, nobody would correct the errors when I'm gone.

Wim
Wim
Hein van den Heuvel
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5


You have a handful of 'labels' that have a space between the intended label name and the colon to make it a label.
For example: $ STOCKNEG_MX :
And several more of those STOCK thingies.
Fix that!
It might not cuase this problem, but it should be cleaned up. See '$HELP GOSUB'


GOSUB
Parameter
label

Specifies a label of 1 to 255 alphanumeric characters that
appears as the first item on a command line. A label may not
contain embedded blanks. When the GOSUB command is executed,
control passes to the command following the specified label.

The label can precede or follow the GOSUB statement in the
current command procedure. When you use a label in a command
procedure, it must be terminated with a colon (:). If you use
duplicate labels, control is always given to the label most
recently read by DCL.



Hein.

Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Hein,

I don't like it but labels may have spaces before the :. Test it.

Wim
Wim
labadie_1
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Wim

yes of course, a system manager must know Dcl, but some others langages are much more efficient when doing specific things: for string manipulation, Perl, awk ( SYS$COMMON:[SYSHLP.EXAMPLES.tcpip.snmp]gawk ), for others things, Python...

And I think Hein will not disagree that Perl is helpful :-)
Wim Van den Wyngaert
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Labadie,

of course Perl is OK but my point is that the ONLY standard is DCL. What would you say if I used POSIX ksh as a scripting language on VMS and you don't know ksh but you have to manage systems created by me ?

Second point is that DCL runs on every VMS node, whatever the version.

And is very readable.

Wim
Wim
Jan van den Ende
Honored Contributor

Re: How many Line a DCL can manage on VMS 5.5

Gerard,

I tend to heavily agree with Wim!!!

In the past I HAVE run into a site where 'everything' was in Fortran.

In itself that would not have to pose a big problem, but if you need to change something and nobody around knows IF the sources are still there, let alone where...
Rather frustrating if they have just purchased a nice new Vax with RA81's, and all system management procedures and user program control procedures reference DRA0, DRB0, DRC0 and DRD0....

Jan
Don't rust yours pelled jacker to fine doll missed aches.