IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

How to force ISPF to allocate ISPF temporary data sets


IBM Mainframe Forums -> TSO/ISPF
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
Michele Giannuli

New User


Joined: 12 Sep 2019
Posts: 5
Location: ITALY

PostPosted: Thu Sep 12, 2019 2:03 pm
Reply with quote

I would like to force ISPF to dynamically allocate temporary data sets (ISPCTLx, ISPLSTx and ISPWRKx) as real temporary datasets without preallocating them in LOGON PROC.
I try to explain: if I preallocate those datasets in LOGON PROC I can force them to be temporary. Something like this:

Code:

//ISPCTL1  DD DISP=NEW,UNIT=VIO,SPACE=(CYL,(1,1)), 
//            DCB=(LRECL=80,BLKSIZE=800,RECFM=FB)   
//ISPWRK1  DD DISP=NEW,UNIT=VIO,SPACE=(CYL,(1,1)), 
//            DCB=(LRECL=256,BLKSIZE=2560,RECFM=FB)
//ISPLST1  DD DISP=NEW,UNIT=VIO,SPACE=(CYL,(1,1)), 
//            DCB=(LRECL=121,BLKSIZE=1210,RECFM=FBA)


But I wouldn't like to preallocate them in LOGON PROC: so I let ISPF to allocate them when it needs them. The result is not temporary datasets: ISPF allocate and catalog them with a name like this:

prefix.uid.SPFTEMPx.CNTL

and delete them at the end of the session.
As you can see those datasets are not temporary and, ie, I can't put them in VIO.

The question is: Is there a way to instruct ISPF to allocate these dataset (without allocating them in LOGON PROC) when it needs them as temporary datasets?
Thank you all
Michele
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 730
Location: Denmark

PostPosted: Fri Sep 13, 2019 12:49 am
Reply with quote

Preallocate in logon script?
Back to top
View user's profile Send private message
Michele Giannuli

New User


Joined: 12 Sep 2019
Posts: 5
Location: ITALY

PostPosted: Fri Sep 13, 2019 11:51 am
Reply with quote

Willy Jensen wrote:
Preallocate in logon script?


Hi Willy,
thank you for your post.
I would like to force ISPF to allocate those datasets only when it needs them.
If I allocate the datasets in logon script or in logon proc I would have all datasets allocated at logon.
In my ISPF configuration table I have the value of 8 for the parameter MAXIMUM_NUMBER_OF_SPLIT_SCREENS. So, at logon, I would have allocated: 9 x ISPCTLx + 8 x ISPWRKx + 8 x ISPLSTx = 25 datasets.
And that's what I don't want.
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 730
Location: Denmark

PostPosted: Fri Sep 13, 2019 1:33 pm
Reply with quote

I see, in that case I don't have any recommendations. I quickly looked at the ISPF configuration table, but couldn't find any relevant parameter there. Also no relevant exit as far as I can tell.
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 730
Location: Denmark

PostPosted: Fri Sep 13, 2019 7:26 pm
Reply with quote

I did test ISPF exit 16 'log, list, trace, and temporary data set allocation exit', but apparently you can only substitute a 'real' dataset prefix. When I tried a tempds one, I got error 'Syntax error in data set name &&S1.SPFLOG2.LIST'. A 'real' prefix like userid.S1 worked fine.
Back to top
View user's profile Send private message
Michele Giannuli

New User


Joined: 12 Sep 2019
Posts: 5
Location: ITALY

PostPosted: Fri Sep 13, 2019 7:41 pm
Reply with quote

Willy Jensen wrote:
I did test ISPF exit 16 'log, list, trace, and temporary data set allocation exit', but apparently you can only substitute a 'real' dataset prefix. When I tried a tempds one, I got error 'Syntax error in data set name &&S1.SPFLOG2.LIST'. A 'real' prefix like userid.S1 worked fine.


Willy, I really appreciate your test.
I didn't tried with the exit 16 because the description in the manual made me think to a 'real prefix'. Anyway, your test leaves no doubt.
Thank you again.
Michele
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 730
Location: Denmark

PostPosted: Tue Sep 17, 2019 1:12 pm
Reply with quote

Turns out that ISPF exit 16 can be used after all. While you cannot just replace the prefix with &&something (that would have been too easy), you can actually allocate the datasets in the exit.
Experimentation shows that the exit is entered every time an ISPF log, list, trace, and temporary data set is opened and it is entered prior to checking if the DDname is present, hence it can be used to allocate the dataset.
See my 'ISPEXI16' sample at harders-jensen.com/wjtech/zprograms.html
Back to top
View user's profile Send private message
Michele Giannuli

New User


Joined: 12 Sep 2019
Posts: 5
Location: ITALY

PostPosted: Tue Sep 17, 2019 4:27 pm
Reply with quote

Willy Jensen wrote:
Turns out that ISPF exit 16 can be used after all. While you cannot just replace the prefix with &&something (that would have been too easy), you can actually allocate the datasets in the exit.
Experimentation shows that the exit is entered every time an ISPF log, list, trace, and temporary data set is opened and it is entered prior to checking if the DDname is present, hence it can be used to allocate the dataset.
See my 'ISPEXI16' sample at harders-jensen.com/wjtech/zprograms.html


Hi Willy,
thank you very much for your attention to my question.
Now I'm quite sure it'not possible to allocate at open time those datasets as temporary ones . I'll consider the options I've and I'll decide what one to use.
Thank you again.
Michele
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 730
Location: Denmark

PostPosted: Tue Sep 17, 2019 4:54 pm
Reply with quote

The ISPF exit 16 can allocate temporary datasets before open. One sample:
Code:
alclog   dc    c'alloc dd(isplog) mod delete reuse ' 
         dc    c'lrecl(125) recfm(v,a) blksize(129) '
         dc    c'tracks space(5,5) unit(vio) '       

I have tested it (z/os 2.3) and it works.
Back to top
View user's profile Send private message
Michele Giannuli

New User


Joined: 12 Sep 2019
Posts: 5
Location: ITALY

PostPosted: Tue Sep 17, 2019 6:25 pm
Reply with quote

Willy Jensen wrote:
The ISPF exit 16 can allocate temporary datasets before open. One sample:
Code:
alclog   dc    c'alloc dd(isplog) mod delete reuse ' 
         dc    c'lrecl(125) recfm(v,a) blksize(129) '
         dc    c'tracks space(5,5) unit(vio) '       

I have tested it (z/os 2.3) and it works.


I had misunderstood (not good at assembler at all). This is a acceptable solution.
Thank you Willy
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> TSO/ISPF

 


Similar Topics
Topic Forum Replies
No new posts db2 vs static data COBOL Programming 1
No new posts External data queue (changes?) CLIST & REXX 0
No new posts Pull data using date difference betwe... DB2 6
No new posts Preserve changes to ISPF Panel Variables TSO/ISPF 1
No new posts fast data scrambling PL/I & Assembler 10
Search our Forums:

Back to Top