View previous topic :: View next topic
|
Author |
Message |
Michele Giannuli
New User
Joined: 12 Sep 2019 Posts: 5 Location: ITALY
|
|
|
|
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 |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 730 Location: Denmark
|
|
|
|
Preallocate in logon script? |
|
Back to top |
|
|
Michele Giannuli
New User
Joined: 12 Sep 2019 Posts: 5 Location: ITALY
|
|
|
|
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 |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 730 Location: Denmark
|
|
|
|
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 |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 730 Location: Denmark
|
|
|
|
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 |
|
|
Michele Giannuli
New User
Joined: 12 Sep 2019 Posts: 5 Location: ITALY
|
|
|
|
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 |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 730 Location: Denmark
|
|
|
|
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 |
|
|
Michele Giannuli
New User
Joined: 12 Sep 2019 Posts: 5 Location: ITALY
|
|
|
|
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 |
|
|
Willy Jensen
Active Member
Joined: 01 Sep 2015 Posts: 730 Location: Denmark
|
|
|
|
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 |
|
|
Michele Giannuli
New User
Joined: 12 Sep 2019 Posts: 5 Location: ITALY
|
|
|
|
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 |
|
|
|