So I figured I'd test this, rather than just guessing or trying to remember 
what is true.

//CLGO     JOB ,'COMPILE/LINK/GO',NOTIFY=&SYSUID
//         SET COBLIB=IGY.V5R2M0
//         JCLLIB ORDER=(&COBLIB..SIGYPROC)
//*----------------------------------------------------------*
//CLGO     EXEC IGYWCLG,GOPGM=TEST1,
//           LNGPRFX=&COBLIB,
//*****      PARM.COBOL='TEST',
//*****      PARM.LKED='LIST=NOIMP MAP XREF LET=0',
//*****      PARM.GO='THIS IS A TEST'
//           PARMDD.COBOL=PARMS,
//           PARMDD.LKED=PARMS,
//           PARMDD.GO=PARMS
//COBOL.SYSIN DD *
       ID DIVISION.
       PROGRAM-ID. 'TEST1'.
       PROCEDURE DIVISION.
           DISPLAY 'TEST1'
           STOP RUN.
       END PROGRAM 'TEST1'.
//COBOL.PARMS DD *
TEST
 RULES(ENDPERIOD,EVENPACK,LAXPERF,NOSLACKBYTES)
 ARITH(EXTEND)
 CODEPAGE(1047)
 DLL
 INITCHECK
 PGMNAME(LONGMIXED)
 NOADATA
 NOADV
 AFP(VOLATILE)
 ARCH(9)
 QUOTE
 AWO
 BLOCK0
 BUFSIZE(30000)
 NOCICS
 NOCOMPILE(S)
 CURRENCY('Y')
 DATA(31)
 NODBCS
 NSYMBOL(DBCS)
 NODECK
 NODIAGTRUNC
 DISPSIGN(SEP)
 NODUMP
 NODYNAM
 NOEXIT
 NOEXPORTALL
 NOFASTSRT
 FLAG(W,W)
 NOFLAGSTD
 HGPR(PRESERVE)
 INTDATE(ANSI)
/*
//LKED.PARMS DD *
LIST=NOIMP,
MAP,
XREF,
LET=0,
/*
//GO.PARMS DD *
THIS IS A TEST
/*
//GO.SYSOUT   DD SYSOUT=*
//

Results:
PP 5655-W32 IBM Enterprise COBOL for z/OS  5.2.0                         Date 
02/14/2018  Time 11:30:16   Page     1
Invocation parameters:
 TEST RULES(ENDPERIOD,EVENPACK,LAXPERF,NOSLACKBYTES) ARITH(EXTEND) 
CODEPAGE(1047) DLL INITCHECK PGMNAME(LONGMIXED)
 AFP(VOLATILE) ARCH(9) QUOTE AWO BLOCK0 BUFSIZE(30000) NOCICS NOCOMPILE(S) 
CURRENCY('Y') DATA(31) NODBCS NSYMBOL(DBCS) NODECK
 NODIAGTRUNC DISPSIGN(SEP) NODUMP NODYNAM NOEXIT NOEXPORTALL NOFASTSRT 
FLAG(W,W) NOFLAGSTD HGPR(PRESERVE) INTDATE(ANSI)

So I would say that the assertion that there is some limit of 255 characters 
appears to not be true.  The limit of 100 for PARM is still true, but using 
PARMDD seems to allow more than 255, and I'm guessing up to whatever the PARMDD 
limit is (32767?).

Would this be a way to satisfy the need for this RFE?  They could do 
PARMDD=SYSOPTF in their JCL and not need to specify OPTFILE at all.



________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of Tom 
Ross <tmr...@stlvm20.vnet.ibm.com>
Sent: Tuesday, February 13, 2018 4:42 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Question for COBOL users

We added OPTFILE as a response to customer request, I believe it was
well before PARMDD, but not positive.

Someone else asked what the COMPILER limit for reading the PARM=
options string is, but there is none.  There is a JCL/JES limit of
255 bytes.  There is no limit for SYSOPTF (using OPTFILE).

It seems pretty clear that we cannot change the default behavior to
read SYSOPTF whenever it is present, regardless of OPTFILE, so we
will probably add another (sigh) compiler option

>There is nothing to prevent a user or product to go ahead and use
>PARMDD, and it could point to the program's (compiler's) specific
>overrides.  The program (compiler) can only read the PARM for the
>length it specifies (100/255) until modified to allow a parm length of
>32K.  Maybe a couple releases down the road you can give a warning
>message that the program (compiler) specific parm will be removed.

Cheers,
TomR              >> COBOL is the Language of the Future! <<

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to