Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Run ISPF change command in Batch

427 views
Skip to first unread message

Vikesh Bhoola

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Hello List,

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

Seibert, Dave

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Hello Vikesh,
Can you turn trace on in your edit macro and re-post?

(you could do this easily with File-AID/MVS).

David Seibert
Compuware Corporation File-AID Product Architect
Dave.S...@Compuware.com

Ganesh Rao

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Try using ISPSTART to invoke the rexx CHNGE12

//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

Thomas Berg

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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'

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:

thomas.berg.vcf

Höglund Lars (LHO3)

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
1.) You have to start your Rexx within ISPF, like ISPSTART(CHNGE12)

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

Vikesh Bhoola

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Thanks for all the responses,

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

Höglund Lars (LHO3)

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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


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

Kalinich, John

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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)

Binyamin Dissen

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
On Thu, 6 Jul 2000 13:26:20 +0200 Thomas Berg
<thoma...@FORENINGSSPARBANKEN.SE> wrote:

:>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

Seibert, Dave

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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.

Imbriale, Donald , Exchange

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
How about using DISKRU on the EXECIO so that only records to be updated need
to be rewritten?

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.
***********************************************************************

Thomas Berg

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
You are of course right about that.
(But then You should use DISKRU instead of DISKR, but thats
a typo i presume.)

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:

thomas.berg.vcf

Thomas Conley

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
----- Original Message -----
From: "Vikesh Bhoola" <vbh...@SARS.GOV.ZA>
Newsgroups: bit.listserv.ispf-l
Sent: Thursday, July 06, 2000 7:06 AM
Subject: Run ISPF change command in Batch


> 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

Doug Nadel

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
On Thu, 6 Jul 2000 11:21:46 -0400, you wrote:

> 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/

Vikesh Bhoola

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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 :


//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]

Philip.Anania , Exchange

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
I believe you need other ISP libraries. Try adding these DD's to your jcl.
You will need to do an ISRDDN to acquire the list of DSN's for each DD.

ISPPLIB
ISPMLIB
ISPTLIB
ISPSLIB

Metz, Seymour

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
What happens if you add ISP.SISPTENU to the ISPTLIB concatenation?


Shmuel (Seymour J.) Metz

Doug Nadel

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
You need to include the system table libraries in ISPTLIB.
Have a look at my BATCHPDF program at my website
http://somebody.home.mindspring.com

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/

Seibert, Dave

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Vikesh,
Here's what ISPF msgs&codes says for ispi021
System Programmer Response: Possible bad dataset
in the allocations shown in the message. If initialization
continues to fail, contact IBM for assistance.

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.

JB Moore

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Marv,

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
>

Marvin Knight

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
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" <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>

Ganesh Rao

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
Vikesh,

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.

Damon Anderson

unread,
Jul 6, 2000, 3:00:00 AM7/6/00
to
I cannot believe all the posts about JCL for batch execution
of ISPF and nobody ( or should I say "somebody" Doug ? )
hasn't mentioned Doug's BATCHPDF macro available on his
website http://somebody.home.mindspring.com/

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

Vikesh Bhoola

unread,
Jul 7, 2000, 3:00:00 AM7/7/00
to
Thank You everyone for responding. I don't think I will ever forget ISPTLIB.


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
>

Roy Gardiner

unread,
Jul 7, 2000, 3:00:00 AM7/7/00
to
Doing it John's way, the profile tables will be dynamically created from
whatever's defined as ISPTLIB. I have found that if one runs a lot of such
jobs then, very rarely, two will run at the same time and one will fail
RC=12 on a table open. I have always assumed that ISPF briefly opens the
tables in WRITE mode thus causing contention, but I've never been able to
confirm this.

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."
--------------------------------------------------------------------------------------------

Marvin Knight

unread,
Jul 7, 2000, 3:00:00 AM7/7/00
to
The temporary profile with an IEBCOPY step is the way I run my batch
ISPF jobs also. As mentioned you can get the ENQUEUE contention
problem with concurrent jobs that have the same ISPPROF or a temporary
ISPPROF and a common dataset as the first dataset in the ISPTLIB
concatenation. During initialization ISPF will do the following:

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:

0 new messages