Our developers would like to edit large datasets, however because of their
TSO region size limited to 4K, the dataset changes to browse mode. I have a
problem giving them larger region size we will get auxillary storage
problems. They would like to make use of ISPF edit and use the change
command, to change '0001' to '0002' in column 16. (eg ===> c '0001' '0002'
16).
Can someone please suggest an alternative or what could be the cause of the
RC(-3) it would be appreciated.
This works for small (1 track) datasets but I would like to do this for
datasets at > 80 cylinders.
I have tried this :
Member = CHNGE12
/* REXX */
TRACE 'R'
DSN=X.Y.Z
EXEC=CHG1TO2
ADDRESS ISPEXEC "EDIT DATASET('"DSN"')" ,
"MACRO("EXEC")"
Member = CHG1TO2
/* rexx */
Address "ISREDIT"
"MACRO"
"CHANGE '0001' '0002' 16 ALL"
"SAVE"
"END"
My Batch job looks like this :
//useridX JOB (acct),'VIKESH',CLASS=S,MSGLEVEL=(1,1),
// MSGCLASS=T,NOTIFY=&SYSUID,TIME=1440,REGION=9M
//RUNREXX EXEC PGM=IKJEFT01
//ISPLLIB DD DISP=SHR,DSN=ISP.SISPLOAD
//ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU
// DD DISP=SHR,DSN=ISP.SISPSLIB
//ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
//ISPTLIB DD DISP=SHR,DSN=userid.ISPTENU
//ISPPROF DD DISP=SHR,DSN=userid.ISPF.ISPPROF
//ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
//SYSEXEC DD DISP=SHR,DSN=ISP.SISPEXEC
//SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB
// DD DSN=CPAC.CMDPROC,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
CHNGE12
Output of job :
READY
CHNGE12
3 *-* DSN=X.Y.Z
>>> "X.Y.Z"
4 *-* EXEC=CHG1TO2
>>> "CHG1TO2"
5 *-* ADDRESS ISPEXEC "EDIT DATASET('"DSN"')" ,"MACRO("EXEC")"
>>> "EDIT DATASET('X.Y.Z') MACRO(CHG1TO2)"
+++ RC(-3) +++
READY
END
Kind Regards,
Vikesh Bhoola
South African Revenue Services
(you could do this easily with File-AID/MVS).
David Seibert
Compuware Corporation File-AID Product Architect
Dave.S...@Compuware.com
//useridX JOB (acct),'VIKESH',CLASS=S,MSGLEVEL=(1,1),
// MSGCLASS=T,NOTIFY=&SYSUID,TIME=1440,REGION=9M
//RUNREXX EXEC PGM=IKJEFT01
//ISPLLIB DD DISP=SHR,DSN=ISP.SISPLOAD
//ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU
// DD DISP=SHR,DSN=ISP.SISPSLIB
//ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
//ISPTLIB DD DISP=SHR,DSN=userid.ISPTENU
//ISPPROF DD DISP=SHR,DSN=userid.ISPF.ISPPROF
//ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
//SYSEXEC DD DISP=SHR,DSN=ISP.SISPEXEC
//SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB
// DD DSN=CPAC.CMDPROC,DISP=SHR
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ISPSTART CMD(CHNGE12)
Hope it works,
-Gani
Vikesh Bhoola <vbh...@SARS.GOV.ZA> on 06/07/2000 05:23:35 PM
Please respond to ISPF discussion list <ISP...@listserv.nd.edu>
To: ISP...@listserv.nd.edu
cc: (bcc: Ganesh Rao/PLs/TCSCHENNAI)
Subject: Run ISPF change command in Batch
/* REXX */
TRACE 'R'
dsn='X.Y.Z'
"ALLOC F(XXX) DA('"dsn"') SHR REUSE"
'EXECIO * DISKR XXX (STEM REC. FINIS'
Do i = 1 To rec.0
Parse Value rec.i With x1 16 x2 20 x3
If x2 = '0001' Then rec.i = x1'0002'x3
End
'EXECIO * DISKW XXX (STEM REC. FINIS'
'FREE F(XXX)'
Exit 0
Thomas Berg
EXEC=CHG1TO2
> ADDRESS ISPEXEC "EDIT DATASET('"DSN"')" ,
> "MACRO("EXEC")"
Vikesh Bhoola skrev:
2.) Use standard Rexx for the job, leave ISPF out of it.
Med Vänlig Hälsning
Lars Höglund
Teknik REMISS
SPP IT
Tel SPP: 44 16648
Mobil: 070-888 000 9
-----Ursprungligt meddelande-----
Från: Vikesh Bhoola [mailto:vbh...@SARS.GOV.ZA]
Skickat: torsdag 06 juli 2000 12:54
Till: ISP...@LISTSERV.ND.EDU
Ämne: Run ISPF change command in Batch
Dave, I did add the Trace 'R' in Macro Member = CHG1TO2 and there is no
change to the output. Is this what you meant :
/* rexx */
Trace 'R'
Address "ISREDIT"
"MACRO"
"CHANGE '0001' '0002' 16 ALL"
"SAVE"
"END"
Ganesh, I did add the ISPSTART CMD(CHNGE12) in the batch job and get the
following error :
ISPT036 Table in use -/-TBOPEN issued for table ISPSPROF that is
in use, ENQUEUE failed.
Tried different unique ISPTLIB datasets, still gives the same error.
Thomas, thanks for the REXX option. I will give it try.
Thanks,
Vikesh
Med Vänlig Hälsning
Lars Höglund
Teknik REMISS
SPP IT
Tel SPP: 44 16648
Mobil: 070-888 000 9
-----Ursprungligt meddelande-----
Från: Vikesh Bhoola [mailto:vbh...@SARS.GOV.ZA]
Skickat: torsdag 06 juli 2000 15:09
Till: ISP...@LISTSERV.ND.EDU
Ämne: Re: Run ISPF change command in Batch
//ISPPROF DD UNIT=VIO, <--- TEMPORARY ISPF PROFILE
// SPACE=(TRK,(1,1,5)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
:>I would rather use only rexx:
:>/* REXX */
:>TRACE 'R'
:>dsn='X.Y.Z'
:>"ALLOC F(XXX) DA('"dsn"') SHR REUSE"
:>'EXECIO * DISKR XXX (STEM REC. FINIS'
Perhaps it might make more sense to process a record/block at a time, rather
than the entire huge file.
:>Do i = 1 To rec.0
:> Parse Value rec.i With x1 16 x2 20 x3
:> If x2 = '0001' Then rec.i = x1'0002'x3
:> End
:>'EXECIO * DISKW XXX (STEM REC. FINIS'
:>'FREE F(XXX)'
:>Exit 0
Sort of:
"EXECIO 1 DISKR XXX (STEM REC."
Do WHILE RC = 0
Parse Value rec.i With x1 16 x2 20 x3
If x2 = '0001' Then rec.i = x1'0002'x3
"EXECIO 1 DISKW XXX (STEM REC."
"EXECIO 1 DISKR XXX (STEM REC."
End
"EXECIO 0 DISKW XXX (finis"
"EXECIO 0 DISKR XXX (finis"
Remember, the issue was to avoid the use of large numbers of ASM slots.
[ snipped ]
--
Binyamin Dissen <bdi...@dissensoftware.com>
Binyamin Dissen <bdi...@netvision.net.il>
http://www.dissensoftware.com
Director, Dissen Software, Bar & Grill - Israel
I believe the enqueue problem now is from your profile dataset allocated to
ISPPROF.
Make that a batch-only profile dataset(I think others have recommended
temporary datasets but I prefer perm.) and it should work.
If it still doesn't work, try running your macro in foreground ISPF edit to
insure it works there(even only on a small file).
Are you saying that the following is the output of your trace?
Address "ISREDIT"
"MACRO"
"CHANGE '0001' '0002' 16 ALL"
"SAVE"
"END"
I expected to see non-zero return codes from any of the commands which fail.
Don Imbriale
:>Exit 0
Sort of:
[ snipped ]
***********************************************************************
Bear Stearns is not responsible for any recommendation, solicitation,
offer or agreement or any information about any transaction, customer
account or account activity contained in this communication.
***********************************************************************
An alternative I uses when processing big amounts of data
(but it requires a temporary intermediate dataset),
is to do EXECIO 2000 DISKR AAA (STEM REC. and then after
processing all stem-vars do EXECIO 2000 DISKW BBB (STEM REC.
And then copy from temp-ds to original-ds. Thats more
efficient especially if you compile the rexx.
Thomas
Binyamin Dissen skrev:
> Hello List,
>
> Our developers would like to edit large datasets, however because of their
> TSO region size limited to 4K, ....
Vikesh,
I would recommend another approach to you. A 4M (you said 4K, but I'm
assuming you meant 4M) TSO region may have been OK in 1980, but in 2000, 4M
is tiny. I would suggest you sent a limit closer to 16 or 32M. You should
not get ASM problems unless you have a severe lack of page dataset space.
In that case, allocate more. Limiting your users to a 4M region is probably
going to impact productivity more than the cost of giving them a larger
region. You said they can't even edit an 80 cylinder dataset? Ouch.
Regards,
Thomas Conley, President
Pinnacle Consulting Group, Inc.
59 Applewood Drive
Rochester, NY 14612-3501
P: (716)720-0012
F: (716)723-3713
http://users.mindex.com/pinnacle
To reply, remove the words 'consult' from my email address
> You said they can't even edit an 80 cylinder dataset? Ouch.
Well if its VB 32K and each line is empty or has just a few bytes at
the beginning, you might not be able to edit a one track data set :-)
Doug Nadel
----------------------------------------
ISPF and OS/390 Tools & Toys page:
http://somebody.home.mindspring.com/
Please help again with executing the REXX using ISPSTART,
I allocated batch only ISPPROF & ISPTLIB datasets and copied my ISPPROF
datasets to them.
Is this correct ?
Now when I execute the job I now get the following message :
READY
ISPSTART CMD(CHNGE12)
ISPI021 Unrecoverable error in initialization of
command tables
ISPI022 ISPF cannot continue. ISPF abending.
IKJ56641I ISPSTART ENDED DUE TO ERROR+
IKJ56641I USER ABEND CODE 0999 REASON CODE 00000000
My JCL :
//useridX JOB (acct),'VIKESH',CLASS=S,MSGLEVEL=(1,1),
// MSGCLASS=T,NOTIFY=&SYSUID,TIME=1440,REGION=8M
//RUNREXX EXEC PGM=IKJEFT01
//ISPLLIB DD DISP=SHR,DSN=ISP.SISPLOAD
//ISPSLIB DD DISP=SHR,DSN=ISP.SISPSENU
// DD DISP=SHR,DSN=ISP.SISPSLIB
//ISPPLIB DD DISP=SHR,DSN=ISP.SISPPENU
//ISPTLIB DD DISP=SHR,DSN=userid.BATCH.ISPTENU
//ISPPROF DD DISP=SHR,DSN=userid.BATCH.ISPPROF
//ISPMLIB DD DISP=SHR,DSN=ISP.SISPMENU
//SYSEXEC DD DISP=SHR,DSN=ISP.SISPEXEC
//SYSPROC DD DISP=SHR,DSN=ISP.SISPCLIB
// DD DSN=CPAC.CMDPROC,DISP=SHR
//SYSTSPRT DD SYSOUT=*
ISPSTART CMD(CHNGE12)
Can someone please let me know what I am doing wrong.
PS: Dave the trace of the Macro is results in the same output as before (ie.
it does not get to the macro statements) :
READY
CHNGE12
3 *-* DSN=X.Y.Z
>>> "X.Y.Z"
4 *-* EXEC=CHG1TO2
>>> "CHG1TO2"
5 *-* ADDRESS ISPEXEC "EDIT DATASET('"DSN"')" ,"MACRO("EXEC")"
>>> "EDIT DATASET('X.Y.Z') MACRO(CHG1TO2)"
+++ RC(-3) +++
READY
END
PS : Thomas, yes I did mean 4M. We unfortunately do have expanded storage
shortages and have a battery of page datasets which can quickly fill-up. I
would prefer my user's use a batch job that would *hopefully* release the
storage.
Thanks again for any input.
Vikesh
-----Original Message-----
From: Seibert, Dave [mailto:Dave_S...@COMPUWARE.COM]
ISPPLIB
ISPMLIB
ISPTLIB
ISPSLIB
Shmuel (Seymour J.) Metz
On 6 Jul 2000 09:00:56 -0700, vbh...@SARS.GOV.ZA (Vikesh Bhoola)
wrote:
>Hello List,
>
>Please help again with executing the REXX using ISPSTART,
>
>I allocated batch only ISPPROF & ISPTLIB datasets and copied my ISPPROF
>datasets to them.
>Is this correct ?
>Now when I execute the job I now get the following message :
>
>READY
> ISPSTART CMD(CHNGE12)
>ISPI021 Unrecoverable error in initialization of
>command tables
>ISPI022 ISPF cannot continue. ISPF abending.
>IKJ56641I ISPSTART ENDED DUE TO ERROR+
>IKJ56641I USER ABEND CODE 0999 REASON CODE 00000000
>
Doug Nadel
----------------------------------------
ISPF & OS/390 Tools & Toys page:
http://www.mindspring.com/~somebody/
This leads me to jump to the conclusion that PDF is having problems opening
your Table library which contains your commands. As I understand it, your
command table is sought in your ISPTLIB dataset.
If Seymour's suggestion didn't do it,
try these, one at a time:
1) Insure that your ISPPROF and ISPTLIB datasets are proper lrecl(80),
blksize(blksize shouldn't matter, but...model them after your foreground
datasets), and dsorg(PO).
2) add Dynamnbr=10 to your
//RUNREXX EXEC PGM=IKJEFT01
statement.
3) add DDname ISPTABL to your libraries
You can share your userid.BATCH.ISPTENU
between ISPTLIB and ISPTABL
Admittedly the last 2 are not likely to be the answer, but if they do
resolve the problem, I'm sure we can collectively come up with an
explanation.
Shouldn't he be coding "NEWAPPL(ISP)" on his in-stream ISPSTARTs also?
Jim Moore
ISPF discussion list <ISP...@listserv.nd.edu> wrote:
> Seymour suggestion is most likely the correct answer.As part of initialization ISPF will attempt to open the following tables:
ISPSPROF - from ISPPROF first and will get the default from ISPTLIB if not
found
xxxPROF - from ISPPROF, then ISPTLIB, and then use ISPPROF from ISPTLIB
xxxCMDS - from ISPTLIB
ISPCMDS - from ISPTLIB
Hence the ISPTLIB DD must contain at least xxxCMDS & ISPCMDS.
I would strongly suggest that ISP.SISPTENU (the ISPF supplied product
library)
be concatenated after the user library. Normally I would recommend that
the profile
table library be used as the first DSN in the ISPTLIB concatenation as well
as for ISPTABL
if that DD is used. This will give unique enques for the TBOPEN's.
There are several more
tables that are in the supplied ISPF library that may also be needed
depending on
the application being run.
Marvin Knight
ISPF Development
"Metz, Seymour" @listserv.nd.edu> on 07/06/2000 12:28:17 PM
Please respond to ISPF discussion list
Sent by: ISPF discussion list
To: ISP...@listserv.nd.edu
cc:
Subject: Re: Run ISPF change command in Batch
What happens if you add ISP.SISPTENU to the ISPTLIB concatenation?
Shmuel (Seymour J.) Metz
> -----Original Message-----
> From: Vikesh Bhoola [SMTP:vbh...@SARS.GOV.ZA]
> Sent: Thursday, July 06, 2000 11:51 AM
>
ISPSPROF - from ISPPROF first and will get the default from ISPTLIB if not
found
xxxPROF - from ISPPROF, then ISPTLIB, and then use ISPPROF from ISPTLIB
xxxCMDS - from ISPTLIB
ISPCMDS - from ISPTLIB
Hence the ISPTLIB DD must contain at least xxxCMDS & ISPCMDS.
I would strongly suggest that ISP.SISPTENU (the ISPF supplied product
library)
be concatenated after the user library. Normally I would recommend that
the profile
table library be used as the first DSN in the ISPTLIB concatenation as well
as for ISPTABL
if that DD is used. This will give unique enques for the TBOPEN's.
There are several more
tables that are in the supplied ISPF library that may also be needed
depending on
the application being run.
Marvin Knight
ISPF Development
"Metz, Seymour" <sm...@NSF.GOV>@listserv.nd.edu> on 07/06/2000 12:28:17 PM
Please respond to ISPF discussion list <ISP...@listserv.nd.edu>
Sent by: ISPF discussion list <ISP...@listserv.nd.edu>
You would need the ISPF table library as well. ISP.SISPTENU(or TLIB not so
sure.) This has to be concatenated to ISPTLIB
Hope it helps,
Gani
Vikesh Bhoola <vbh...@SARS.GOV.ZA> on 06/07/2000 10:20:45 PM
Please respond to ISPF discussion list <ISP...@listserv.nd.edu>
To: ISP...@listserv.nd.edu
cc: (bcc: Ganesh Rao/PLs/TCSCHENNAI)
Subject: Re: Run ISPF change command in Batch
Hello List,
Please help again with executing the REXX using ISPSTART,
I allocated batch only ISPPROF & ISPTLIB datasets and copied my ISPPROF
datasets to them.
Is this correct ?
Now when I execute the job I now get the following message :
READY
ISPSTART CMD(CHNGE12)
ISPI021 Unrecoverable error in initialization of
command tables
ISPI022 ISPF cannot continue. ISPF abending.
IKJ56641I ISPSTART ENDED DUE TO ERROR+
IKJ56641I USER ABEND CODE 0999 REASON CODE 00000000
My JCL :
Vikesh
Subject: Re: Run ISPF change command in Batch
Hello again Vikesh
I think the ISPSTART was the real key to your original problem.
I believe the enqueue problem now is from your profile dataset allocated to
ISPPROF.
Make that a batch-only profile dataset(I think others have recommended
temporary datasets but I prefer perm.) and it should work.
If it still doesn't work, try running your macro in foreground ISPF edit to
insure it works there(even only on a small file).
Are you saying that the following is the output of your trace?
Address "ISREDIT"
"MACRO"
"CHANGE '0001' '0002' 16 ALL"
"SAVE"
"END"
I expected to see non-zero return codes from any of the commands which fail.
On the left hand column, it is the second to last entry under
Programming and Debugging. He put it out there back
in February. It has worked fine for me and since it is a
REXX edit macro, it is easy to customize...
Hope this was of use.....
- Damon Anderson
I just ran the batch job (with ISP.SISPTENU) & it kept ending with RC(4) and
not making the necessary changes. The cause of this is the REGION size. Just
tested this against a typical dataset (91 cyls SMS Compressed) and it
required 700M region size. Not feasible at my expanded storage strapped
site. I am now looking at the REXX alternative.
Thanks to Thomas & Binyamin for the REXX code as well.
Vikesh
-----Original Message-----
From: Metz, Seymour [mailto:sm...@NSF.GOV]
Sent: 06 July 2000 06:28
To: ISP...@listserv.nd.edu
Subject: Re: Run ISPF change command in Batch
What happens if you add ISP.SISPTENU to the ISPTLIB concatenation?
Shmuel (Seymour J.) Metz
> -----Original Message-----
> From: Vikesh Bhoola [SMTP:vbh...@SARS.GOV.ZA]
> Sent: Thursday, July 06, 2000 11:51 AM
>
Could somebody (or Somebody -- yes it's an old joke, I shan't do it again)
put me straight?
IEBCOPY from the system (or the user's) table library eliminates the
problem. I copy ISPSPROF,ISRPROF,ISPPROF and ISPCMDS. Too many/few?
I don't copy the user's because I believe that user profile variables should
not be used in batch - how can one guarantee that they match what the user
has on-line? Simpler and more accurate to pass them as parms in the batch
JCL.
Regards, Roy Gardiner
> From: Kalinich, John [mailto:kali...@ST-LOUIS-EXCH01.ARMY.MIL]
> Subject: Re: Run ISPF change command in Batch
>
> I use a temporary ISPF profile in batch:
>
> //ISPPROF DD UNIT=VIO, <--- TEMPORARY ISPF PROFILE
> // SPACE=(TRK,(1,1,5)),
> // DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160)
>
> > From: Höglund Lars (LHO3) [mailto:lars.h...@SPP.SE]
> >
> > You have to copy your profile dataset (or needed members) to a profile
> > dataset that is not allocated to any session. Use IEBCOPY to create a
temp dataset > > with your profile members
--------------------------------------------------------------------------------------------
"National Westminster Bank plc is registered in England No 929027. Registered Office: 135 Bishopsgate, London EC2M 3UR.
National Westminster Bank plc is regulated by IMRO, SFA and Personal Investment Authority. A member of the NatWest and Gartmore Marketing Group advising on the life assurance, pensions and unit trust products only of that Marketing Group.
This e-mail message is confidential and for use by the addressee only. If the message is received by anyone other than the addressee, please return the message to the sender by replying to it and then delete the message from your computer.
Internet e-mails are not necessarily secure. National Westminster Bank plc does not accept responsibility for changes made to this message after it was sent."
--------------------------------------------------------------------------------------------
TBOPEN ISPSPROF LIBRARY(ISPPROF) SHARE
not found then
TBOPEN ISPSPROF LIBRARY(ISPTLIB) SHARE
TBCLOSE ISPSPROF LIBRARY(ISPPROF)
TBOPEN ISPSPROF LIBRARY(ISPPROF) SHARE
For a temp profile with no ISPSPROF the not found path will be taken
and a TBOPEN against ISPTLIB is done to get the default ISPSPROF from
ISPTLIB. This causes an ENQUEUE to be done against the first dataset
in the ISPTLIB concatenation padded to 44 chars followed by the ISPSPROF
member name. If the concurrent jobs have the same dataset first in the
ISPTLIB
concatenation, then you get the ENQUEUE error. This is why I put either a
temp
table library or the temp profile library first in the ISPTLIB
concatenation. If the batch job
is running table services without LIBDEF , similar errors could occur with
ISPTLIB
Marvin Knight
ISPF Development
Roy Gardiner <Roy.Ga...@NATWEST.COM>@listserv.nd.edu> on 07/07/2000
04:42:43 AM
Please respond to ISPF discussion list <ISP...@listserv.nd.edu>
Sent by: ISPF discussion list <ISP...@listserv.nd.edu>
To: ISP...@listserv.nd.edu
cc: