i read about the advice of inserting variables using (varname) instead of &varname. there's just one question left where i couldn't find any helpful hints in the bookmanager, maybe someone out there has an advice:
when i insert a line that consists both of patterns and variables, for example:
"line_after .zlast = <1 (stepexec) (col1) 'PGM=DSNUTILB,'>"
it works fine this way, but i would like to know if i can avoid calculating the position (col1) and just add the text string right after the end of the inserted variable? this would save me from some extra coding for all kind of jcl stuff...
when i tried it those two ways:
"line_after .zlast = (dsname) + ','"
"line_after .zlast = <1 '//' 16 (dsname)> + ','"
the edit macro technically runs correct but inserts the comma on column 1 instead of after the variable!?
does anyone have an idea?
bye,
andi
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
newline = '// whatever ' /* this line can be as complex
as you want */
"line_after .zlast = (newline)' /* this one is bog simple */
Hope that helps
Jim
Canberra
hi,
bye,
andi
****************************************************************
IMPORTANT
The information transmitted is for the use of the intended recipient only and may contain confidential and/or legally privileged material. Any review, re-transmission, disclosure dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited and may result in severe penalties. If you have received this e-mail in error please notify the Privacy Hotline of the Australian Taxation Office, telephone 13 28 69 and delete all copies of this transmission together with any attachments.
****************************************************************
"LINE-AFTER .ZLAST = '"dsname",'"
dsname=dsname','
"LINE_AFTER .ZLAST = <1 '//' 16 (DSNAME)>"
"LINE_AFTER .ZLAST = <1 '//' 16 '"dsname",'>"
But I repeat, I don't use this structure much so I may be only revealing my
ignorance.
---
Bob Bridges, rhb...@attglobal.net
cell 336 382-7313
/* Silence promotes the presence of God, prevents many harsh and proud
words, and suppresses many dangers in the way of ridiculing or harshly
judging our neighbors....If you are faithful in keeping silence when it is
not necessary to speak, God will preserve you from evil when it is right
for you to talk. -Francois Fenelon (1651-1715) */
-----Original Message-----
From: Andreas Fischer
Sent: Wednesday, August 6, 2008 10:40
i read about the advice of inserting variables using (varname) instead of
&varname. there's just one question left where i couldn't find any helpful
hints in the bookmanager, maybe someone out there has an advice:
when i insert a line that consists both of patterns and variables, for
example:
"line_after .zlast = <1 (stepexec) (col1) 'PGM=DSNUTILB,'>"
it works fine this way, but i would like to know if i can avoid calculating
the position (col1) and just add the text string right after the end of the
inserted variable? this would save me from some extra coding for all kind
of jcl stuff...
when i tried it those two ways:
"line_after .zlast = (dsname) + ','"
"line_after .zlast = <1 '//' 16 (dsname)> + ','"
the edit macro technically runs correct but inserts the comma on column 1
instead of after the variable!?
does anyone have an idea?
----------------------------------------------------------------------
CPUTTIME is not updated until there is a task switch. This can be
caused by a physical I/O operation, or by the OS giving control to
another task because my task has used its alloted slice of CPU time.
This means that a cpu-bound segment of code which uses less than the CPU
time slice does not get an updated CPUTTIME and the elapsed time
calculates (incorrectly) as zero.
I have tried adding an output operation just before capturing CPUTTIME,
but this operation adds CPU time of its own, and the amount of time
added is *very* variable, so it is impossible to remove it reliably.
Does anyone have a suggestion of a (hopefully) simple method I can use
to force CPUTTIME to be updated either without significant impact to the
elapsed CPU time, or with a consistent impact which can be compensated
for?
Thanks!
RAC
--------------------------------------------------------
The information contained in this message is intended only for the recipient, and may be a confidential attorney-client communication or may otherwise be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, please be aware that any dissemination or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by replying to the message and deleting it from your computer. The McGraw-Hill Companies, Inc. reserves the right, subject to applicable local law, to monitor and review the content of any electronic message or information sent to or from McGraw-Hill employee e-mail addresses without informing the sender or recipient of the message.
--------------------------------------------------------
:>I am accessing the CPUTTIME (Total CPU Time) field of the TCB in order
:>to compute CPU times for some performance tuning I am doing, but have
:>run into a complication. I capture CPUTTIME before and after a code
:>segment which I am evaluating, and determine elapsed CPU time as the
:>difference.
:>CPUTTIME is not updated until there is a task switch. This can be
:>caused by a physical I/O operation, or by the OS giving control to
:>another task because my task has used its alloted slice of CPU time.
:>This means that a cpu-bound segment of code which uses less than the CPU
:>time slice does not get an updated CPUTTIME and the elapsed time
:>calculates (incorrectly) as zero.
:>I have tried adding an output operation just before capturing CPUTTIME,
:>but this operation adds CPU time of its own, and the amount of time
:>added is *very* variable, so it is impossible to remove it reliably.
:>Does anyone have a suggestion of a (hopefully) simple method I can use
:>to force CPUTTIME to be updated either without significant impact to the
:>elapsed CPU time, or with a consistent impact which can be compensated
:>for?
How about CALLDISP (if you are doing assembler)?
--
Binyamin Dissen <bdi...@dissensoftware.com>
http://www.dissensoftware.com
Director, Dissen Software, Bar & Grill - Israel
Should you use the mailblocks package and expect a response from me,
you should preauthorize the dissensoftware.com domain.
I very rarely bother responding to challenge/response systems,
especially those from irresponsible companies.
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
--------------------------------------------------------
The information contained in this message is intended only for the recipient, and may be a confidential attorney-client communication or may otherwise be privileged and confidential and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, please be aware that any dissemination or copying of this communication is strictly prohibited. If you have received this communication in error, please immediately notify us by replying to the message and deleting it from your computer. The McGraw-Hill Companies, Inc. reserves the right, subject to applicable local law, to monitor and review the content of any electronic message or information sent to or from McGraw-Hill employee e-mail addresses without informing the sender or recipient of the message.
--------------------------------------------------------
----------------------------------------------------------------------
I have to use the DD names INPUT and OUTPUT in REXX program. I don't
want to define these DD names in JCL. Also, data will be passed to the
INDATA file through the program.
The program need to be execute the allocation subroutine 3 times. The
program is working for first loop. When it came to second loop and
allocating the file, program is getting error RC = -20. The message is
displaying as below.
125 *-* "ALLOC F(INPUT) UNIT(SYSDA) LRECL(80) SPACE(1)
TRACKS RECFM(F B) REUSE"
+++ RC(-20) +++
126 *-* "EXECIO * DISKW INPUT (STEM INPUT. FINIS"
+++ RC(-20) +++
127 *-* "ALLOC F(OUTPUT) UNIT(SYSDA) LRECL(121) SPACE(1)
CYLINDERS RECFM(V B"
+++ RC(-20) +++
128 *-* "FTP" HOSTNAME "(EXIT"
+++ RC(-20) +++
142 *-* "FREE F(INPUT OUTPUT)"
+++ RC(-20) +++
Can anyone help me on this?
Thanks and Regards,
Gangireddy Siva Pratap Reddy
what return code do you get from the free command in the first loop? i never tried free the way you did, but when i re-read about it in the bookmanager now, the example uses comma seperation between the two dd statements. maybe you could try it with FREE
F(INPUT, OUTPUT).
bye,
andi
I also tried with "FREE DD(INPUT,OUTPUT)".
Thanks and Regards,
Gangireddy Siva Pratap Reddy
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of Gangireddy, Siva Pratap Reddy
Sent: 13. elokuuta 2008 15:25
To: TSO-...@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Antwort: [TSO-REXX] ALLOCATION of files in a
LOOP
I got the return code 12. We can use the statement "FREE F(INPUT OUTPUT
....)". I have used the code "FREE F(INPUT,OUTPUT)" and tested. Again I
am getting the same error. For first loop, it is giving the RC = 12.
I also tried with "FREE DD(INPUT,OUTPUT)".
Thanks and Regards,
Gangireddy Siva Pratap Reddy
----------------------------------------------------------------------
Please find my code. Problem is at CHECK_CONNECTION and CHECK_FILE_AVAIL
for Allocation.
/* REXX */
00010000
PARSE ARG INTRVL NCHECK MODE SERVNAME
00020015
DSTIME = 1 /* Default sleep time */
00021025
DCHECK = 3 /* Default FTP check time */
00022018
SPC = 1 /* sleep count initialize' */
00022135
00023022
CALL VALIDATE_PARMS
00024022
CALL GET_JOBID
00024122
CALL READ_FTP_FILE_DATASETUP
00024225
SELECT
00024328
WHEN MODE = 'N' THEN
00024425
DO
00024543
CALL CHECK_CONNECTION
00024625
CALL CHECK_FILE_AVAIL
00024725
END
00024843
WHEN MODE = 'E' THEN
00024925
DO
00025043
CALL CHECK_CONNECTION
00025125
CALL CHECK_FILE_AVAIL
00025225
CALL TRANSMIT_FILE
00025325
END
00025443
OTHERWISE
00025525
NOP
00025628
END
00025728
EXIT
00025825
00026028
/* Starting of procedures */
00026122
GETMSG_EMAIL:
00026228
/*"EXECIO * DISKR EMAILL (STEM EMAILL. FINIS" /* EMAIL ID LIST */
00026456
"EXECIO * DISKR PDATE (STEM PDATE. FINIS" /* PROCESS DATE FILE*/
00026556
"EXECIO * DISKR GETBDY(STEM GETBDYS. FINIS" /* GET MESSAGE BODY */ */
00026656
SAY 'EMAIL SENT....'
00026756
CALL SEND_EMAIL
00026856
RETURN
00026956
/* end of GETMSG_EMAIL */
00027056
00027156
PUTMSG_EMAIL:
00027256
/*"EXECIO * DISKR GETBDY(STEM GETBDYS. FINIS"
00027356
"EXECIO * DISKR PUTBDY(STEM PUTBDYS. FINIS" */
00027456
SAY 'EMAIL SENT....'
00027556
CALL SEND_EMAIL
00027656
RETURN
00027856
/* end of PUTMSG_EMAIL */
00027956
00028056
SEND_EMAIL:
00028156
/* "ALLOC F(SYSUT1) UNIT(SYSDA) LRECL(80) SPACE(1) TRACKS RECFM(F B)"
00028231
"EXECIO * DISKW INPUT (STEM MAILT. FINIS"
00028328
"IEBGENER"
00028428
"FREE F(SYSUT1)" */
00028531
EXIT(RC)
00028639
RETURN
00028728
/* end of PUTMSG_EMAIL */
00028828
00028928
TRANSMIT_FILE:
00029028
SLEEPER_RTN = 'FTRASM'
00029128
IF GET_FLAG= 'Y' THEN DO
00029228
END
00029328
IF PUT_FLAG= 'Y' THEN DO
00029428
END
00029528
RETURN
00029628
/* end of TRANSMIT_FILE */
00029728
00029828
CHECK_FILE_AVAIL:
00029928
SLEEPER_RTN = 'FAVAIL'
00030028
IF GET_FLAG= 'Y' THEN DO
00030247
INPUT. = ''
00030347
OUTPUT. = ''
00030447
SAY HOSTNAME
00030547
DO I = 1 TO GETCMDQ.0
00030647
INPUT.I = GETCMDQ.I
00030747
SAY INPUT.I
00030847
END
00030947
CALL FTP_PROCESS
00031056
IF FTP_ERROR_FND = 'Y' THEN CALL GETMSG_EMAIL
00031150
END
00031247
IF PUT_FLAG= 'Y' THEN DO
00031347
FILE_NOT_FND = 'N'
00031447
SKIP = 'Y'
00031549
DO I = 1 TO PUTCMDQ.0
00031647
SAY 'PUTCMDQ.I' I ' ' PUTCMDQ.I
00031748
IF SKIP = 'Y' THEN /* SKIPS 1,3,5,... DATA */
00031847
SKIP = 'N'
00031947
ELSE
00032047
DO
00032147
SKIP = 'Y'
00032247
IF PUTCMDQ.I = 'quit' THEN LEAVE
00032349
IF POS('(',PUTCMDQ.I) < POS(')',PUTCMDQ.I) THEN
00032656
DO
00032756
CALL GET_LAST_GDG_GEN /* GET LAST GDG VERSION */
00032856
END
00032956
IF SYSDSN("'"PUTCMDQ.I"'") \= 'OK' THEN DO
00033556
SAY PUTCMDQ.I ' Not FOUND on Mainframe system.'
00033656
FILE_NOT_FND = 'Y'
00033756
END
00033856
END
00033956
END
00034056
IF FILE_NOT_FND = 'Y' THEN CALL PUTMSG_EMAIL
00034156
END
00034256
RETURN
00034356
/* end of CHECK_FILE_AVAIL */
00034456
00034556
CHECK_CONNECTION:
00034656
SLEEPER_RTN = 'CHCONN'
00034756
INPUT. = ''
00034856
OUTPUT. = ''
00034956
INPUT.1 = USERINF
00035056
INPUT.2 = 'quit'
00035156
SAY HOSTNAME
00035256
SAY INPUT.1
00035356
SAY INPUT.2
00035456
CALL FTP_PROCESS
00035556
IF FTP_ERROR_FND = 'Y' THEN DO
00035656
IF GET_FLAG= 'Y' THEN DO
00035756
CALL GETMSG_EMAIL
00035856
END
00035956
IF PUT_FLAG= 'Y' THEN DO
00036056
CALL PUTMSG_EMAIL
00036156
END
00036256
END
00036356
RETURN
00036456
/* end of CHECK_CONNECTION */
00036556
00036656
FTP_PROCESS:
00036756
FTP_ERROR_FND = 'N'
00036856
"FREE DD(INPUT,OUTPUT)"
00036957
SAY ' RC IN BEFORE FTP = ' RC
00037057
IF RC <> 0 THEN RC = 0
00037157
"ALLOC F(INPUT) UNIT(SYSDA) LRECL(80) SPACE(1) TRACKS RECFM(F B) "
00037257
"EXECIO * DISKW INPUT (STEM INPUT. FINIS"
00037356
"ALLOC F(OUTPUT) UNIT(SYSDA) LRECL(121) SPACE(1) CYLINDERS RECFM(V
B)"00037457
"FTP" HOSTNAME "(EXIT"
00037557
IF RC <> 0 THEN FTP_ERROR_FND = 'Y'
00037656
"EXECIO * DISKR OUTPUT (STEM OUTPUT. FINIS"
00037756
"FREE F(INPUT OUTPUT)"
00037856
IF RC <> 0 THEN SAY 'NOT FREED'
00037956
IF FTP_ERROR_FND = 'Y' THEN CALL SLEEPER_PROCESS
00038056
DO I=1 TO OUTPUT.0
00038156
SAY OUTPUT.I
00038256
END
00038356
"FREE DD(INPUT,OUTPUT)"
00038457
SAY 'AFTER FTP : ' RC
00038557
SPC = 1 /* RESET SLEEPER ATTAEMPTS */
00038656
RETURN
00038756
/* end of CHECK_CONNECTION */
00038856
00038956
SLEEPER_PROCESS:
00039056
IF SPC <= NCHECK THEN DO
00039156
"FREE DD(INPUT,OUTPUT)"
00039257
say 'RC in before sleep ' RC
00039357
SAY 'SLEEP FOR 'SPC' TIME'
00039456
CALL SYSCALLS 'ON'
00039556
ADDRESS SYSCALL
00039656
"sleep" INTRVL
00039756
CALL SYSCALLS 'OFF'
00039856
SPC = SPC + 1
00039956
IF SLEEPER_RTN = 'CHCONN' THEN CALL CHECK_CONNECTION
00040056
IF SLEEPER_RTN = 'FAVAIL' THEN CALL CHECK_FILE_AVAIL
00040156
IF SLEEPER_RTN = 'FTRASM' THEN CALL TRANSMIT_FILE
00040256
END
00040356
RETURN
00040456
/* end of SLEEPER_PROCESS */
00040556
00040656
READ_FTP_FILE_DATASETUP:
00040756
FTPCSTR. = ''
00040856
GETCMDQ. = ''
00040956
PUTCMDQ. = ''
00041056
HOSTNAME = '' /* IP Address */
00041156
USERINF = '' /* 'user password' */
00041256
TEMPQ. = ''
00041356
GET_FLAG = 'N'
00041456
PUT_FLAG = 'N'
00041556
"EXECIO * DISKR FTPCNTL(STEM FTPCSTR. FINIS"
00041656
IF RC = 0 THEN DO
00041756
IF FTPCSTR.0 > 3 THEN DO
00041856
HOSTNAME = SPACE(SUBSTR(FTPCSTR.1,1,20),0)
00041956
USERINF = SPACE(SUBSTR(FTPCSTR.2,1,20),0) ' ',
00042056
SPACE(SUBSTR(FTPCSTR.3,1,20),0)
00042156
GETCMDQ.1 = USERINF
00042256
PUTCMDQ.1 = USERINF
00042356
TQ= 0 /* TEMP QUEUE INDEX */
00042456
GQ= 1 /* GET QUEUE INDEX */
00042556
PQ= 1 /* PUT QUEUE INDEX */
00042656
DO I = 4 TO FTPCSTR.0
00042756
TEMP1 = STRIP(SUBSTR(FTPCSTR.I,1,72))
00042856
IF TRANSLATE(SUBSTR(TEMP1,1,3)) = 'CD ' THEN DO
00042956
TQ = TQ + 1
00043056
TEMPQ.TQ = TEMP1
00043156
TEMPQ.0 = TQ
00043256
END
00043356
IF TRANSLATE(SUBSTR(TEMP1,1,4)) = 'QUIT' THEN DO
00043456
GQ = GQ + 1
00043556
GETCMDQ.GQ = TEMP1
00043656
PQ = PQ + 1
00043756
PUTCMDQ.PQ = TEMP1
00043856
GETCMDQ.0 = GQ
00043956
PUTCMDQ.0 = PQ
00044056
END
00044156
IF TRANSLATE(SUBSTR(TEMP1,1,3)) = 'GET' | ,
00044256
TRANSLATE(SUBSTR(TEMP1,1,3)) = 'PUT' THEN DO
00044356
TEMP2 = STRIP(SUBSTR(TEMP1,4,70))
00044456
FIRSTQ_FND = 'Y'
00044556
COUNTER = 0
00044656
TEMPNAME = ''
00044756
FNAME. = ''
00044856
FNM = 0
00044956
DO GETF = 1 TO LENGTH(TEMP2)
00045056
IF COUNTER < 2 THEN DO
00045156
IF SUBSTR(TEMP2,GETF,1) = '''' THEN DO
00045256
IF FIRSTQ_FND = 'Y' THEN FIRSTQ_FND = 'N'
00045356
ELSE DO
00045456
FIRSTQ_FND = 'Y'
00045556
FNM = FNM + 1
00045656
FNAME.FNM = TEMPNAME
00045756
FNAME.0 = FNM
00045856
TEMPNAME = ''
00045956
COUNTER = COUNTER + 1
00046056
TEMP2 = STRIP(SUBSTR(TEMP2,GETF+1,70))
00046156
GETF = 0
00046256
END
00046356
END
00046456
ELSE DO
00046556
IF SUBSTR(TEMP2,GETF,1) = ' ' THEN DO
00046656
IF FIRSTQ_FND = 'N' THEN
00046756
TEMPNAME = TEMPNAME || ' '
00046856
ELSE DO
00046956
FNM = FNM + 1
00047056
FNAME.FNM = TEMPNAME
00047156
FNAME.0 = FNM
00047256
TEMPNAME = ''
00047356
COUNTER = COUNTER + 1
00047456
TEMP2 = STRIP(SUBSTR(TEMP2,GETF,70))
00047556
GETF = 0
00047656
END
00047756
END
00047856
ELSE
00047956
TEMPNAME = TEMPNAME || SUBSTR(TEMP2,GETF,1)
00048056
END
00048156
END
00048256
ELSE LEAVE
00048356
END
00048456
IF TRANSLATE(SUBSTR(TEMP1,1,3)) = 'GET' THEN DO
00048556
DO TQ = 1 TO TEMPQ.0
00048656
GET_FLAG = 'Y'
00048756
GQ = GQ + 1
00048856
GETCMDQ.GQ = TEMPQ.TQ
00048956
IF TQ = TEMPQ.0 THEN DO
00049056
GQ = GQ + 1
00049156
GETCMDQ.GQ = 'dir ' || FNAME.1
00049256
TEMPQ. = ''
00049356
TQ = 0
00049456
END
00049556
GETCMDQ.0 = GQ
00049656
END
00049756
END
00049856
IF TRANSLATE(SUBSTR(TEMP1,1,3)) = 'PUT' THEN DO
00049956
PUT_FLAG = 'Y'
00050056
DO FNM = 1 TO 2
00050156
PQ = PQ + 1
00050256
PUTCMDQ.PQ = FNAME.FNM
00050356
END
00050456
PUTCMDQ.0 = PQ
00050556
END
00050656
END
00050756
END
00050856
END
00050956
END
00051056
RETURN
00051156
/*End Of READ_INPUT_FILES */
00051256
00051356
GET_LAST_GDG_GEN:
00051456
GDGBASE = STRIP(SUBSTR(PUTCMDQ.I,1,POS('(',PUTCMDQ.I)-1))
00051556
X = OUTTRAP(LISTC1.)
00051656
ADDRESS TSO "LISTC ENT('"GDGBASE"')"
00051756
X = OUTTRAP('OFF')
00051856
DO GDGI = 1 TO LISTC1.0
00051956
IF STRIP(SUBSTR(LISTC1.GDGI,1,10)) = 'NONVSAM' THEN
00052056
PUTCMDQ.I = SPACE(STRIP(SUBSTR(LISTC1.GDGI,16,70)),0)
00052156
END
00052256
RETURN
00052356
/*End Of GET_LAST_GDG_GEN*/
00052456
00052556
GET_JOBID:
00052656
CVT = STORAGE(10,4) /* FLCCVT-PSA DATA AREA */
00052756
TCBP = STORAGE(D2X(C2D(CVT)),4) /* CVTTCBP */
00052856
TCB = STORAGE(D2X(C2D(TCBP)+4),4)
00052956
TIOT = STORAGE(D2X(C2D(TCB)+12),4) /* TCBTIO */
00053056
JOBNAME = STRIP(STORAGE(D2X(C2D(TIOT)),8)) /* TIOCNJOB */
00053156
RETURN
00053256
/*End Of GET_JOBID */
00053356
00053456
VALIDATE_PARMS:
00053556
IF DATATYPE(INTRVL,'W') = 0 THEN DO
00053656
SAY 'SLEEP TIME INTERVAL is not numeric.',
00053756
'Default time ('DSTIME' Min) set to SLEER INTERVAL.'
00053856
INTRVL = DSTIME
00053956
END
00054056
IF INTRVL < DSTIME THEN DO
00054156
SAY 'Sleep interval can not less than defalut time 'DSTIME' Min.,',
00054256
'Default setting applied.'
00054356
INTRVL = DSTIME
00054456
END
00054556
INTRVL = INTRVL * 60
00054656
IF DATATYPE(NCHECK,'W') = 0 THEN DO
00054756
SAY 'Number of FTP check attempt is not numeric,',
00054856
'Default attempts ('DCHECK') set to number of FTP checks.'
00054956
NCHECK = DCHECK
00055056
END
00055156
IF NCHECK < DCHECK THEN DO
00055256
SAY 'Number of FTP check attempts can not less than 'DCHECK' times',
00055356
',Default setting applied.'
00055456
NCHECK = DCHECK
00055556
END
00055656
IF MODE \= 'N' & MODE \= 'E' THEN DO
00056051
SAY 'Mode 'MODE' is not valid.Default mode N (Normal Mode) applied.'
00060030
MODE = N
00070030
END
00071015
RETURN
00080022
/* END OF VALIDATE_PARMS*/
00090022
Thanks and Regards,
Gangireddy Siva Pratap Reddy
Senior Software Engineer | M P H A S I S an EDS Company |
HOLCP - Homeowners Application
RMZ Millennia Business Park, | 1C, #143 Dr. MGR Road, Perungudi, Chennai
- 600 096 |
Tel: + 91 (44) 6612 3167 | Mobile: +91 9840967879
e-mail: sivapratapred...@eds.com
when i read your mail twice now, since you say you don't want to specify those ddnames in jcl, where do you specify the data set name for input and output?
bye,
andi
Hi,
----------------------------------------------------------------------
I suggest the FREE is NOT the issue because the REUSE on the ALLOC
should take care of that.
Dave
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of Gangireddy, Siva Pratap Reddy
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of Seibert, Dave
Sent: 13. elokuuta 2008 15:45
To: TSO-...@VM.MARIST.EDU
Subject: Re: [TSO-REXX] ALLOCATION of files in a LOOP
My first guess would be that you can't reallocate the file because a
file is already open on that ddname.
Can you trace the first execution of your loop and confirm that the
EXECIO DISKW ... FINIS
completes cleanly?
If the file is still open, you won't be able to alloc a different file
to it.
I suggest the FREE is NOT the issue because the REUSE on the ALLOC
should take care of that.
Dave
----------------------------------------------------------------------
Are you sure that ADDRESS TSO is in effect in the latter loops? Try
putting ADDRESS TSO in front of each command, similar to:
ADDRESS TSO "ALLOC F(INPUT) UNIT(SYSDA) LRECL(80) SPACE(1) TRACKS
RECFM(F B) REUSE"
--
John McKown
Senior Systems Programmer
HealthMarkets
Keeping the Promise of Affordable Coverage
Administrative Services Group
Information Technology
The information contained in this e-mail message may be privileged
and/or confidential. It is for intended addressee(s) only. If you are
not the intended recipient, you are hereby notified that any disclosure,
reproduction, distribution or other use of this communication is
strictly prohibited and could, in certain circumstances, be a criminal
offense. If you have received this e-mail in error, please notify the
sender by reply and delete this message without copying or disclosing
it.
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of McKown, John
Sent: 13. elokuuta 2008 15:51
To: TSO-...@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Antwort: [TSO-REXX] ALLOCATION of files in a
LOOP
Are you sure that ADDRESS TSO is in effect in the latter loops? Try
putting ADDRESS TSO in front of each command, similar to:
ADDRESS TSO "ALLOC F(INPUT) UNIT(SYSDA) LRECL(80) SPACE(1) TRACKS
RECFM(F B) REUSE"
----------------------------------------------------------------------
Say address()
before your alloc.
And it will display what your host environment is.
Good thought John. I would have expected rc 3 from bad command, but I
tested with Address directed to ISPEXEC and the RC from and ALLOC after
that is in fact 20.
Dave
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
On 13/08/2008, Gangireddy, Siva Pratap Reddy
--
Cheers,
Kenny
Thanks! MPD
Martin Dunkel
National City Corporation
Turnover Support / ChangeMan ZMF
(w) 216-257-5354
(p) 80053...@archwireless.net
--
Cheers,
Kenny
-------------------------------------------------------------------------------------------
***National City made the following annotations
-------------------------------------------------------------------------------------------
This communication is a confidential and proprietary business communication.
It is intended solely for the use of the designated recipient(s). If this
communication is received in error, please contact the sender and delete
this communication.
===========================================================================================
After I used ADDRESS TSO before ALLOCATION statement, Now the issue was
resolved.
The address has changed to SYSCALL to sleep the job for some time.
Thanks for all.
Thanks and Regards,
Gangireddy Siva Pratap Reddy
-----Original Message-----
From: TSO REXX Discussion List [mailto:TSO-...@VM.MARIST.EDU] On Behalf
Of McKown, John
Sent: Wednesday, August 13, 2008 6:21 PM
To: TSO-...@VM.MARIST.EDU
Subject: Re: [TSO-REXX] Antwort: [TSO-REXX] ALLOCATION of files in a
LOOP
>Hi,
>
>I have to use the DD names INPUT and OUTPUT in REXX program. I don't
>want to define these DD names in JCL. Also, data will be passed to the
>INDATA file through the program.
>
>The program need to be execute the allocation subroutine 3 times. The
>program is working for first loop. When it came to second loop and
>allocating the file, program is getting error RC = -20. The message is
>displaying as below.
>
>125 *-* "ALLOC F(INPUT) UNIT(SYSDA) LRECL(80) SPACE(1)
>TRACKS RECFM(F B) REUSE"
> +++ RC(-20) +++
>
Alloc will never give you a "20", but ISPEXEC might.
What 'address' are you in?
(change Arabic number to Roman numeral to email)