shibubalakrishnan
New User
Joined: 16 Oct 2009 Posts: 26 Location: Bangalore
|
|
|
|
Below is the rexx code which I have written to read data from different jobs from SPOOL.
These jobs are nothing but online CICS region names which I am passing as input from another file.
My input file has 83 regions from which I have to read data & write to 'TSHRPD.INPUT.DATA'
I have defined TSHRPD.INPUT.DATA with PRI CYL = 400, SEC CYL = 100 , DB = 0 , LRECL = 133, RECFM = F.
But even after defining a DSN with 400 cylinders, at the end of rexx utility running, only 95 cylinders are used & data from only 38 regions has been written to TSHRPD.INPUT.DATA.
I am unable to find out that why it is not reading for all the 83 regions that I am passing.
Is this something to do with space constraint, or rexx runtime buffer memory limitation or anything that I am doing wrong?
Is there any way to increase REXX runtime buffer memory if that is the issue?
Please guide me how I need to proceed further.
address TSO
| Code: |
/************* OUTPUT FILE LOGIC*******************/
/* ERROR REPORT WILL BE DELETED IF IT EXISTS */
"ALLOC f(isfin) tracks space(1) reu" /* used by sdsf */
"alloc f(isfout) new delete reu " , /* used by sdsf */
"cylinder space(2,1) lrecl(133) recfm(f,b,a) dsorg(ps)"
"alloc f(tempprt) da('TSHRPD.INPUT.DATA') MOD"
"ALLOC DA('TSHRPD.P53I68.INPUTPS') F(COPYIN) SHR REUSE"
/************READING THE INPUT REFERENCE FILE*********************/
"EXECIO * DISKR COPYIN (STEM COPYREC.)"
DO TP = 1 TO COPYREC.0
TEMPREC = COPYREC.TP
/* TEMPREC1 = "'"||TEMPREC||"'" */
CALL PROCESS
END
"FREE F(tempprt)"
PROCESS:
SAY 'REGION IS ....'TEMPREC
JOBID = TEMPREC
/* PRE1 = PRE||" "||TEMPREC */
/* PRE2 = "'"||PRE1||"'" */
queue "PRE "JOBID
/* SAY PRE2 */
queue "st"
/* QUEUE PRE2 */
/* QUEUE "PRE TEMPREC" */ /* SDSF COMMANDS IN BATCH */
/*queue "filter jobid eq "jobid*/
queue "find " JOBID
queue "++?" /* open output of job */
queue "find APPMSGS"
queue "++s" /* browse msgusr dataset */
queue "print file tempprt" /* print to temp dataset */
queue "PRINT 1 999999999"
queue "print close"
queue "end"
queue "exit"
"execio" queued()" diskw isfin (finis" /* input to sdsf batch */
address ispexec "select pgm(isfafd) parm('++25,80')"/* invoke sdsf */
RETURN
exit |
I even tried running the REXX code using a JCL, below is the JCL
TSHRPD.P53I68.INPUTPS – Data file which has all the 83 region names
P53I5S.PRODR.JCL – DSN which has the rexx code
| Code: |
//P53I5SR1 JOB (P53I5S),'RUNREXX',MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,MSGCLASS=X,CLASS=1,TIME=1440,REGION=0M
//STEP1 EXEC PGM=IKJEFT01,PARM='TOOLV2'
//SYSEXEC DD DSN=P53I5S.PRODR.JCL,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//MYINDD DD DSN=TSHRPD.P53I68.INPUTPS,DISP=SHR
//SYSTSIN DD DUMMY
//
But I am getting the below error.
37 *-* address ispexec "select pgm(isfafd) parm('++25,80')"/
+++ RC(-3) +++ |
What could be the issue ? Please help. |
|