View previous topic :: View next topic
|
Author |
Message |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Hi All,
This is my first post and bit scared whether will be able to frame the query as expected.
I am new to rexx .
Requirement:
Current scenario I am having a rexx tool or rexx panel which takes input from user and submit the rexx in background to do specific task.
Modification required:
Instead of getting the data through panel we want to automate the things and get this data through input file now want to read the input data set in rexxx and then this rexx will be submitting JCL and that JCL is calling some other rexxx programs.
While doing so I am able to read the file in rexx but my JCL is not getting submitted I am getting error as ISPF105 output overflow.
Work around:
I tried changing lrcl of the output data set which contains the JCL and I see the output data set is created but the job is not getting submitted again and in that case I am getting error as " Data set LRCL I s not 80.
So basically when it's 80 I am getting erro as ISPf105 output overflow but if I am changing the lrcl to more than 80 it's generating the the output JCL but not getting submitted and giving error as Data set LRCL is not 80.
Can anyone help me please. let me know if u need any other information from me. |
|
Back to top |
|
 |
sergeyken
Senior Member

Joined: 29 Apr 2008 Posts: 1699
|
|
|
|
Any code sample, please.
Including: the error ISPF105 - what is it, how it looks like, and where it has been found?
Do not forget to emphasize any code, and data, and any message by using the Code button above the message text window.
P.S. Maybe, I am stupid, but so far I was not able to understand any idea from the whole your message. |
|
Back to top |
|
 |
dneufarth
Active User

Joined: 27 Apr 2005 Posts: 398 Location: Inside the SPEW (Cincinnati OH USA)
|
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Thanks for response:
Rexx program submitting the JCl peace of code :
/* jobname = usrid'$' */
ADDRESS ISPEXEC
/* OUTFILE = STRIP(OUTFILE,,"'") */
"LIBDEF ISPSLIB DATASET ID('QSYS.IALAGAR.JCLLIB')
STKADD"
ispexec "ftopen"
ispexec "FTINCL TIMSUBPJ"
ispexec "ftclose "
ADDRESS TSO
say "tempdsn1" tempdsn
"SUBMIT" tempdsn
/* this tempdsn haivng LRCL 80 */
say "tempdsn1" tempdsn
say "hurray"
The above JCL is not getting submitted i am getting error as below:
ISPF105 Output overflow -/-Line to be written greater than data set LRECL (80), TIMSUBPJ record-60
JCl skelton:
//TIMSUBPJ JOB (DCS,058000DCS-058400,2TES-TC3,TESTTEAM),
// '&TIRID',CLASS=A,MSGCLASS=S
//* diggi these parameter passed from rexx
// SET TE=&SYSCHAR
// SET TS=&TSTAGEC
// SET CCID='&CCID'
// SET TID='&TIRID'
// SET PKG='&PACKAGE'
// joblib
// Proclib
//PACKEXEC EXEC PGM=IKJEFT1A,DYNAMNBR=1500,REGION=128M,
// PARM='PACKEXEC PRE &&TE &&TS &&CCID &&TID &&PKG'
//*
//STEPLIB DD DSN=DB95.DSNEXIT,DISP=SHR
// DD DSN=DB95.DSNLOAD,DISP=SHR
//SYSEXEC DD DSN=QSYS.IALAGAR.CLIST.REXX,DISP=SHR
//SUMMARY DD SYSOUT=*
//DETAIL DD SYSOUT=*
//NDVRRPT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//PROJNAME DD *
&PROJNAME
//* |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
I think your problem is here:
Code: |
// PARM='PACKEXEC PRE &&TE &&TS &&CCID &&TID &&PKG' |
You did not show the code that assigns values to the variables, but likely you have trailing blanks in some variables. They are all included in the same line and together (along with constants) they cannot exceed the 80 characters. |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
To diagnose a file tailoring problem, use the ISPFTTRC command.
1. issue the ISPFTTRC command to start the trace.
2. recreate the problem
3. issue the ISPFTTRC command a second time to stop the trace and view the trace output.
If I recall correctly, the last line shown of the FTINCL file will be the last correct line and the failure will be on the next line which is not shown. (I could be wrong about this).
If you still have problems, show us the last page of the trace file. |
|
Back to top |
|
 |
sergeyken
Senior Member

Joined: 29 Apr 2008 Posts: 1699
|
|
|
|
I suggest you to take a look at your JCL output in SDSF. The following statements should produce wrong result:
Code: |
// SET CCID='&CCID'
// SET TID='&TIRID'
// SET PKG='&PACKAGE' |
Please, RTFM on JCL: SET-variables are not substituted within quotes, with only exception in PARM fields.
Please!!! Use the Code button to present any of your samples!!! |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Hi Thanks for your response:
Here is the rexx code getting the value from input file and passing it to the jcl:
Read_inputfile:
"ALLOC F(INFILE) DSN('"'QSYS.STG.NDVR.INPUT.ORG'"') SHR REU"
"EXECIO * DISKR INFILE (FINIS STEM myfile."
"FREE F(INFILE)"
i=1
say "myfile" myfile.0
say "myfile" myfile.1
env = myfile.i
say "ENV" env
i= i+1
tirid = myfile.i
say "TIRID" tirid
i=i+1
ccid=myfile.i
say "ccid" ccid
i=i+1
projname=myfile.i
say "proname" projname
i=i+1
tgtstage=myfile.i
say "stage" tgtstage
i=i+1
package=myfile.i
say "package" package
i=i+1
nwcpyflg=myfile.i
say "CICSFLAG" nwcpyflg
detail = env" RITM"tirid
say detail
/* Stiping */
tirid = strip(tirid)
ccid = strip(ccid)
projname = strip(projname)
tgtstage = strip(tgtstage)
cdp = getcdp(env);
syschar = substr(env,1,1)
tstagec = substr(tgtstage,1,1)
parm = "'PACKI"syschar pkgname"'"
nwcpyflg = strip(nwcpyflg)
here is tempdsn allocation:
"ALLOC DD(TEMPDSN) DS("tempdsn") NEW CATALOG UNIT(SYSDA)",
"CYL SPACE(1 1) RECFM(F B) LRECL(80) BLKSIZE(27920) RELEASE REU"
i changed lrcl of this 80 to 255 in tempdsn i am getting jcl with passed value substuted but the jcl is not getting submitted saying error as " Datset lrcl is not 80"
Thank you again i am working on that ISPFTRC part. |
|
Back to top |
|
 |
sergeyken
Senior Member

Joined: 29 Apr 2008 Posts: 1699
|
|
|
|
Please!!! Use the Code button to present any of your samples!!!
Like this:
Code: |
"ALLOC DD(TEMPDSN) DS("tempdsn") NEW CATALOG UNIT(SYSDA)",
"CYL SPACE(1 1) RECFM(F B) LRECL(80) BLKSIZE(27920) RELEASE REU" |
|
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
Quote: |
i changed lrcl of this 80 to 255 in tempdsn i am getting jcl |
So look in the file and see which line of the JCL exceeds 80 characters. And take steps to make sure it does not exceed the 80.
(I am not sure anymore... maybe do not exceed 72 characters??) |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Thanks for response:
Actually the JCL in turn calling other rexx and as you said below is the jcl and i dnt see any line exceeding the 80th column. I opened the jcl file and i see value has been substituted. but this jcl is not getting submitted
Code: |
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
VIEW ALT0.TMP.DSN.D723385 Columns 00001 00072
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
****** ***************************** Top of Data ******************************
==MSG> MESSAGE NUMBERS TOTAL : E=00000, W=00000, I=00000, SUPPRESSED=00000
==MSG> MESSAGE NUMBERS DISPLAYED: E=00000, W=00000, I=00000
000001 //TIMSUBPJ JOB (DCS,058000DCS-058400,2TES-TC3,TESTTEAM),
000002 // '1234550',CLASS=A,MSGCLASS=S
000003 //* diggi
000004 // SET TE=J
000005 // SET TS=I
000006 // SET CCID='ESQMJESSUPPORT'
000007 // SET TID='1234550'
000008 // SET PKG='DCMRKTNG211215'
000017 //******************************************************************
000018 //* THIS JOB IS TO GET THE VALUES FROM REXX
000019 //* PACKAGE EXECUTE
000020 //******************************************************************
000021 //JOBLIB DD DISP=SHR,DSN=DB95.DSNEXIT
000022 // DD DISP=SHR,DSN=DB95.DSNLOAD
000023 // DD DISP=SHR,DSN=ALT0.PA.UTILITY.LOADLIB.NOFTP
000024 // DD DISP=SHR,DSN=ALT0.MAINTAIN.LOADLIB
000025 //PROCLIB JCLLIB ORDER=ALT0.TICTOC.MAINTAIN.PROCLIB
000026 //******************************************************************
000027 //* SYMBOLICS: TE = TEST ENVIRONMENT
000028 //* TS = TARGET ENDEVOR STAGE
000029 //* CCID = CCID
000030 //* TID = TIR ID
000031 //* PKG = PACKAGE NAME
//**************************************************************
//PACKEXEC EXEC PGM=IKJEFT1A,DYNAMNBR=1500,REGION=128M,
// PARM='PACKEXEC PRE &TE &TS &CCID &TID &PKG'
-- PARM='PACKEXEC PRE J I ESQMJESSUPPORT 1234550 DCMRKTNG211215'
//*
//STEPLIB DD DSN=DB95.DSNEXIT,DISP=SHR
// DD DSN=DB95.DSNLOAD,DISP=SHR
//SYSEXEC DD DSN=QSYS.IALAGAR.CLIST.REXX,DISP=SHR
//SUMMARY DD SYSOUT=*
//DETAIL DD SYSOUT=*
//NDVRRPT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD DUMMY
//PROJNAME DD *
ESQM JST0 ENVIRONMENT SUPPORT
|
|
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
You use STRIP to remove the trailing blanks...
My guess is that the input file has line numbers and you do not strip out everything that should be stripped. (learned from experience)
update: Also, make sure the skeleton itself does not have line numbers. |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Code: |
//***************************************************************
//PACKEXEC EXEC PGM=IKJEFT1A,DYNAMNBR=1500,REGION=128M,
// PARM='PACKEXEC PRE &TE &TS &CCID &TID &PKG'
-- PARM='PACKEXEC PRE J I ESQMJESSUPPORT 1234550 DCMRKTNG211215'
//*
Look at the parm parameter how its substituted. |
|
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Thanks Pedro for all your help!
Let me look at the strip part form input file will get back again.
Thanks again. |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Here is mine input file which is being read in rexx and these values passed in JCl
Code: |
ssssssssssssssssssssssssssssssssssssssssssssssssss
VIEW QSYS.NDVR.INPUT.TRIGGER1
Command ===>
****** ***************************** Top of Data *
000001 JST0
000002 1234550
000003 ESQMJESSUPPORT
000004 ESQM JST0 ENVIRONMENT SUPPORT
000005 INTG
000006 DCMRKTNG211215
000007 Y
****** **************************** Bottom of Data |
|
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
Quote: |
Here is mine input file |
My concern is about having line numbers... in columns 73-80. You did not show those columns. If you want to show us, issue the editor PROFILE command and show us the result.
update: And scroll to the right and show us the entire screen |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Thanks Pedro!
I am still stuck here:
To get rid of ispf105 Overflow error i increased the LRCL of my skelton JCL from 80 t0 150(not sure whether we should do this) but now i am getting below error:IKJ56261I RECORD LENGTH OF DATA SET ALT0.TMP.DSN.D849870 NOT 80
Code: |
COMMAND ===> S
>>> "LIBDEF ISPSLIB DATASET ID('QSYS.DIGGI.JCLLIB')
+++ RC(4) +++
176 *-* ispexec "ftopen "
>>> "ISPEXEC ftopen "
177 *-* ispexec "FTINCL TIMSUBPJ"
>>> "ISPEXEC FTINCL TIMSUBPJ"
179 *-* ispexec "ftclose "
>>> "ISPEXEC ftclose "
180 *-* ADDRESS TSO
181 *-* say "tempdsn1" tempdsn
>>> "tempdsn1 'ALT0.TMP.DSN.D849870'"
tempdsn1 'ALT0.TMP.DSN.D849870'
182 *-* "SUBMIT" tempdsn
>>> "SUBMIT 'ALT0.TMP.DSN.D849870'"
IKJ56261I RECORD LENGTH OF DATA SET ALT0.TMP.DSN.D849870 NOT 80
+++ RC(12) +++
183 *-* say "tempdsn1" tempdsn
>>> "tempdsn1 'ALT0.TMP.DSN.D849870'"
tempdsn1 'ALT0.TMP.DSN.D849870'
As you asked below is my skelton file with cols on and i dnt see anything going beyond 80 coloumns .
[code][/code]
sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
VIEW ALT0.TMP.DSN.D849870 Columns 00001 00072
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
****** ***************************** Top of Data ******************************
=PROF> ....D849870 (FIXED - 150)....RECOVERY OFF WARN....NUMBER OFF............
=PROF> ....CAPS ON....HEX OFF....NULLS ON STD....TABS OFF......................
=PROF> ....AUTOSAVE ON....AUTONUM OFF....AUTOLIST OFF....STATS OFF.............
=PROF> ....PROFILE UNLOCK....IMACRO NONE....PACK OFF....NOTE ON................
=PROF> ....HILITE OFF CURSOR FIND..............................................
==MSG> MESSAGE NUMBERS TOTAL : E=00000, W=00000, I=00001, SUPPRESSED=00000
==MSG> MESSAGE NUMBERS DISPLAYED: E=00000, W=00000, I=00001
==MSG> LABEL MSG.NO. ERROR MESSAGE
==MSG> ------ -------- ------------------------------------------------------
==MSG> .HAAA JCK0406I EMBEDDED NULL (//) FOUND WITHIN JCL STREAM
000001 //TIMSUBPJ JOB (DCS,058000DCS-058400,2TES-TC3,TESTTEAM),
000002 // '1234550',CLASS=A,MSGCLASS=S
000003 //* DIGVIJAY JCL
000004 // SET TE=J
000005 // SET TS=I
VIEW ALT0.TMP.DSN.D849870 Columns 00001 00072
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
000004 // SET TE=J
000005 // SET TS=I
000006 // SET CCID='ESQMJESSUPPORT'
000007 // SET TID='1234550'
000008 // SET PKG='DCMRKTNG211215'
000009 //*
000010 //**********************************************************************
000011 //* THIS JOB IS TO GET THE VALUES FROM REXX
000012 //* PACKAGE EXECUTE
000013 //**********************************************************************
000014 //JOBLIB DD DISP=SHR,DSN=DB95.DSNEXIT
000015 // DD DISP=SHR,DSN=DB95.DSNLOAD
000016 // DD DISP=SHR,DSN=ALT0.PA.UTILITY.LOADLIB.NOFTP
000017 //*********************************************************************
000018 //* SYMBOLICS: TE = TEST ENVIRONMENT
000019 //* TS = TARGET ENDEVOR STAGE
VIEW ALT0.TMP.DSN.D849870 Columns 00001 00072
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
000020 //* CCID = CCID
000021 //* TID = TIR ID
000022 //* PKG = PACKAGE NAME
000023 //*********************************************************************
000024 //*
000025 //PACKEXEC EXEC PGM=IKJEFT1A,DYNAMNBR=1500,REGION=128M,
000026 // PARM='PACKEXEC PRE &TE &TS &CCID &TID &PKG'
=NOTE= -- PARM='PACKEXEC PRE J I ESQMJESSUPPORT 1234550 DCMRKTNG211215'
000027 //*
000028 //STEPLIB DD DSN=DB95.DSNEXIT,DISP=SHR
000029 // DD DSN=DB95.DSNLOAD,DISP=SHR
000030 //SYSEXEC DD DSN=ALT0.MAINTAIN.CLIST,DISP=SHR
000031 //SUMMARY DD SYSOUT=*
000032 //DETAIL DD SYSOUT=*
000033 //NDVRRPT DD SYSOUT=*
000034 //SYSTSPRT DD SYSOUT=*
VIEW ALT0.TMP.DSN.D849870 Columns 00001 00072
Command ===> Scroll ===> CSR
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
000032 //DETAIL DD SYSOUT=*
000033 //NDVRRPT DD SYSOUT=*
000034 //SYSTSPRT DD SYSOUT=*
000035 //SYSTSIN DD DUMMY
000036 //PROJNAME DD *
000037 ESQM JST0 ENVIRONMENT SUPPORT
000038 //*
000039 //**********************************************************************[code][/code] |
I am not doing anything just reading those input from file and trying to pass those input fields to this JCL through rexx. It is a existing code previously these inputs instead from file it was getting from Panel that is the change. |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
I am really stuck here anyone from the forum if they could help.  |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
I read your initial post again... you are converting a process from getting panel input to getting input from batch job. For that reason, I think the problem is in the reading and parsing of the input data.
The "IKJ56261I RECORD LENGTH OF DATA SET ALT0.TMP.DSN.D849870 NOT 80" message is self explanatory. But it is not the first problem that you encounter.
I still recommend that you diagnose the record overflow problem using the ISPFTTRC command, as it is the problem that you need to resolve.
btw: you provided screen shots of the file tailoring output, but not the skeleton itself. The skeleton is 'QSYS.DIGGI.JCLLIB(TIMSUBPJ)'. But because the process worked previously, it is not likely to be the problem. |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Thanks Pedro!
Let me try with ISPFTTRC. |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
In your rexx program, you have stuff in this order:
1. assign value to variable
2. SAY the variable
3. STRIP the variable.
Instead, I recommend this order:
1. assign value to variable
2. STRIP the variable
3. SAY the variable.
And add unique delimiters so you can 'see' the actual length of the data. For example:
Code: |
SAY "stage <<"tgtstage">>" |
Also, I recommend that the constant in the SAY statement use the same name as the variable name for clarity. (tgtstage vs. stage). It is just a good practice. |
|
Back to top |
|
 |
Pedro
Global Moderator

Joined: 01 Sep 2006 Posts: 2389 Location: Silicon Valley
|
|
|
|
Does your input file have the identical text values as would be provided from ISPF panels? Perhaps add code to verify that the input length is acceptable so that subsequent users do not provide bogus data. |
|
Back to top |
|
 |
Digvijay Singh
New User
Joined: 20 Apr 2022 Posts: 89 Location: India
|
|
|
|
Yes,
Input file data is already validated and it as same as panel data.
I am bit confuse about this ISPFTTRC how to use it? apart from this i am making changes in rexx code as you suggested about strip part above. |
|
Back to top |
|
 |
Joerg.Findeisen
Active Member

Joined: 15 Aug 2015 Posts: 971 Location: Bamberg, Germany
|
|
Back to top |
|
 |
Willy Jensen
Active Member

Joined: 01 Sep 2015 Posts: 648 Location: Denmark
|
|
|
|
Probably not related, but did you notice the rc 4 for your LIBDEF?
"LIBDEF ISPSLIB DATASET ID('QSYS.DIGGI.JCLLIB')
+++ RC(4) +++
You are missing a double quote and continuation, so the following STKADD" is not used. Move this to the end of the LIBDEF.
Then you do FTOPEN without parameters, which means that the skeleton will be written to the ISPFILE libdef (DDstmt), but I don't see that anywhere. Instead you submit libdef TEMPDSN, but I can't see how you get the generated job in there.
I think that you must do
either
Code: |
Address ispexec
"FTOPEN TEMP"
"FTINCL...."
"FTCLOSE"
"vget ztempn"
address TSO "Submit" ztempn |
Or
Code: |
Address TSO "Alloc REUSE DD(ISPFILE) DSN(MY.TEMPDSN) ..."
Address ispexec
"FTOPEN"
"FTINCL...."
"FTCLOSE"
address TSO "Submit MY.TEMPDSN" |
Alternative to TSO SUBMIT, without the 80-restriction:
Code: |
Address Ispexec
"control errors return"
"ftopen temp"
"ftincl ...."
"ftclose"
"vget (ztempn)"
cc=Bpxwdyn('sysout(a) lrecl(1024) recfm(v,b) blksize(0)',
'writer(intrdr) rtddn(intrdrdd)')
Address TSO "REPRO infile("ztempn") outfile("intrdrdd")"
cc=Bpxwdyn('free('intrdrdd')') |
If you are not comfortable with REPRO then substitute with "EXECIO * DISKR" ztempn "(finis)" + "EXECIO" queued() "DISKW" intrdrdd "(finis)" |
|
Back to top |
|
 |
|