//SYSTSIN DD *
PROFILE NOPREFIX or PROFILE PREFIX(mytsoid) or omit this statement
altogether
ISPSTART CMD(%myrexx)
/*
I get either:
#1 - ISPV010 Profile not loaded -/-Profile table 'ISPSPROF' not read.
#2 - ISPT036 Table in use -/-TBOPEN issued for table ISPSPROF
that is in
I get #1 when pointing to a &&temp ISPPROF library
I get #2 when pointing to my personal ISPFPROF library, and of course it's
open . . . .I'm in TSO.
I've tried every combination I can think of . . . the concept of needing the
profile eludes me anyway. I think it has something to do with if your REXX
is using function pools variables from your PROFILE, or to control dataset
prefixing with your TSOID..
Michael Swanson
MetaVance Installation Delivery Team
EDS - HIFIES Solution Centre
Phone: 972-604-6475 (8-834)
----------------------------------------------------------------------
For TSO-REXX subscribe / signoff / archive access instructions,
send email to LIST...@VM.MARIST.EDU with the message: INFO TSO-REXX
There are different ways to handle this (as I'm sure others will point out)
but the way I prefer is to include a step immediately before the IKJEFT01
step that does the following:
//COPYPROF EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
//SYSUT3 DD UNIT=DISK,SPACE=(TRK,(1))
//SYSUT4 DD UNIT=DISK,SPACE=(TRK,(1))
//IN DD DSN=MY.PERSONAL.ISPF.PROFILE,DISP=SHR
//OUT DD DSN=&TEMP,DISP=(NEW,PASS,DELETE),
// UNIT=DISK,SPACE=(TRK,(2,1,4)),
// DCB=(LRECL=80,BLKSIZE=9040,RECFM=FB,DSORG=PO)
//SYSIN DD *
COPY INDD=IN,OUTDD=OUT
S M=ISPEDIT,ISPPROF,ISPSPROF,ISRPROF
Then in the IKJEFT01 step I have the following JCL card:
//ISPPROF DD DSN=&TEMP,DISP=(OLD,DELETE,DELETE)
What this does is copy certain members from my personal ISPF profile data
set to a temporary data set that's then used by the batch process. Two of
the advantages of doing it this way are (1) if ISPF tries to copy profile
members from a default library it can cause contention problems (especially
if you submit multiple batch jobs) and (2) because it's your own ISPF
profile you can actually pass variables to the batch process from your
foreground session via the profile (providing you TBSAVE your foreground
profile before submitting the batch job). HTH,
Dave Salt
Soft-Center Solutions Inc.
http://www.soft-center.com
1-877-SoftCen
Bringing you SimpList(tm) - The easiest, most powerful way to surf a
mainframe!
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
//JOBCARD ...
//***************************************************************
//* BATCH ISPF *
//***************************************************************
//REXXISPF EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=your.EXEC,DISP=SHR
//ISPPLIB DD DSN=your.system.ISPPLIB,DISP=SHR
//ISPSLIB DD DSN=your.system.ISPSLIB,DISP=SHR
//ISPMLIB DD DSN=your.system.ISPMLIB,DISP=SHR
//ISPTLIB DD DSN=your.system.ISPTLIB,DISP=SHR
//ISPTABL DD DSN=your.system.ISPTLIB,DISP=SHR
//ISPPROF DD LIKE=your.system.ISPTLIB
//ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ISPSTART CMD(%yourexec parms)
Hope This Helps,
Rob
//CHKRLSE EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=TINJMRS.PDS.CLIST,
// DISP=(SHR,KEEP,KEEP)
//ISPPROF DD DSN=&&TEMP, * copied from my ISPPROF Library
// DISP=(OLD,DELETE,DELETE)
//ISPTLIB DD DSN=PMAMP.MTVLB.ISPTLIB,
// DISP=(SHR,KEEP,KEEP)
//ISPTABL DD DSN=PMAMP.MTVLB.ISPTLIB,
// DISP=(SHR,KEEP,KEEP)
//ISPMLIB DD DSN=SYS1.TSO.ISPMLIB,DISP=SHR
//ISPSLIB DD DSN=SYS1.TSO.ISPSLIB,DISP=SHR
//ISPPLIB DD DSN=SYS1.TSO.ISPPLIB,DISP=SHR
//ISPLOG DD SYSOUT=*,DCB=(RECFM=FB,LRECL=145,BLKSIZE=29000)
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSTSIN DD *
PROFILE PREFIX(myprefix)
ISPSTART CMD(%myrexx parm1 parm2)
/*
When in ISPF, issue command DDLIST (or TSO ISRDDN). Then issue command
O ISPTLIB. This will list all the data sets allocated to DDname ISPTLIB
in your current session. All or some of these may be needed in your
batch JCL. Issue M ISPCMDS to find out which of those libraries
contains that member (it's probably something like ISP.SISPTENU).
Don Imbriale
***********************************************************************
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.
***********************************************************************
Rob
> //JOBCARD ...
> //***************************************************************
> //* BATCH ISPF *
> //***************************************************************
> //REXXISPF EXEC PGM=IKJEFT01
> //SYSEXEC DD DSN=your.EXEC,DISP=SHR
> //ISPPLIB DD DSN=your.system.ISPPLIB,DISP=SHR
> //ISPSLIB DD DSN=your.system.ISPSLIB,DISP=SHR
> //ISPMLIB DD DSN=your.system.ISPMLIB,DISP=SHR
> //ISPTLIB DD DSN=your.system.ISPTLIB,DISP=SHR
> //ISPTABL DD DSN=your.system.ISPTLIB,DISP=SHR
> //ISPPROF DD LIKE=your.system.ISPTLIB
> //ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125
> //SYSTSPRT DD SYSOUT=*
> //SYSTSIN DD *
> ISPSTART CMD(%yourexec parms)
I'd not allocate ISPTABL to a system pds because I wouldn't want the
risk that the batch job would try to write a saved table into a system
library.
Also, ispf used to (still does?) enqueue on individual tables using not
the dsname that they are actually in, but whatever dsn is first in the
ISPTLIB concatenation. If more than one job is using the jcl you show
here they'll likely be in contention. I tended to allocate two vio
temporary pds and use one of them as the ISPPROF dsn and place the
other one, which was always empty, at the start of the ISPTLIB
concatenation. Thus every batch tso/ispf step would have a different
basic dsname for its enqueues.
--
Jeremy C B Nicoll - my opinions are my own.
The TSO command PROFILE NOPREFIX/PREFIX has nothing to do with ispf
profiles. The tso bit is all about how tso will work out a fully
qualified dsn if you only provide a partial one (ie one without a name
enclosed in quotes). I'm fairly sure I never needed to specify a
PROFILE PREFIX (blah) in batch tso jobs run under my userid, because
the prefix value was set from the ACF2 definition of my logonid, just
as it was for foreground tso.
--
Jeremy C B Nicoll - my opinions are my own.
----------------------------------------------------------------------
As far as the ENQ on ISPTLIB, I don't tend to run into it in my table batch,
but it is probably a good idea to make the following enhancement to the JCL:
//JOBCARD ...
//***************************************************************
//* BATCH ISPF *
//***************************************************************
//REXXISPF EXEC PGM=IKJEFT01
//SYSEXEC DD DSN=your.EXEC,DISP=SHR
//ISPPLIB DD DSN=your.system.ISPPLIB,DISP=SHR
//ISPSLIB DD DSN=your.system.ISPSLIB,DISP=SHR
//ISPMLIB DD DSN=your.system.ISPMLIB,DISP=SHR
//ISPTLIB DD LIKE=your.system.ISPTLIB,SPACE=(TRK,(1,1,1))
// DD DSN=your.system.ISPTLIB,DISP=SHR
//ISPTABL DD DSN=your.system.ISPTLIB,DISP=SHR
//ISPPROF DD LIKE=your.system.ISPTLIB
//ISPLOG DD SYSOUT=*,RECFM=VA,LRECL=125
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
ISPSTART CMD(%yourexec parms)
Thanks,
Rob