Published on: 2024-03-09
I was just getting ready for a client conference when I ran into an issue with ISPF on my ZVDT instance.
srchfor
When I tried to run srchfor
in sys1.proclib
I got the following message
The temporary data set qualifier is invalid.
The log, list and temporary cntl data sets will be allocated without it.
***
I asked Aria, the Opera AI assistent, for help and it pointed me to a nice article that discussed the same issue. As much as it was interesting to learn about TSO ISPVCALL
for tracing ISPF processing it did not help me much. I had the same issue for all users and so could not compare a good and bad trace. Also deleting the &SYSUID..SPFLOGx.LIST
datasets did not help.
The ISPVCALL trace did however contain some clues. There was an error mentioning ISPA001
. Looked into the ISPF Messages and Codes manual and it said:
This message precedes further messages for which ISPF system data received the allocation error.
So I looked further down the trace and found ISPA008
. Checking the Messages and Codes manual again the Explanation it said
The temporary data set qualifier, specified in the
configuration utility, did not adhere to the qualifier
naming convention.
So I fired up the the ISPF Planning and Customizing manual and read through chapter 2 _ The ISPF Configuration Table_.
There I learned about the config table load module ISPCFIG
and its user and VSAM variants ISPCFIGU
and ISPCFIGV
respectively.
Then
STEPLIB
concatenation of my TSO logon procedure but none of its libraries contained an ISPCFIG
or ISPCFIGU
load modules.ISFCFIGU
load module in XYZ.LIBRARY
PDS.TSO ISPCCONF
'XYZ.LIBRARY'
as Input Data Set Name and ISPCFIGU
as Input MemberThis converted the load module back to a kewyord format specified on the initial panel.
Now
ISPF_TEMPORARY_DATA_SET_QUALIFIER
and see that it is defined asISPF_TEMPORARY_DATA_SET_QUALIFIER = &SYSNAME(5:4)
Now it all made sense. It was most likely copied from another system which had 8 character &SYSNAME
and only the last 4 (positions 5-8) were use. Well my system only had a 4 character name and that is why it was failing.
The fix was to change the ISPF_TEMPORARY_DATA_SET_QUALIFIER
to
ISPF_TEMPORARY_DATA_SET_QUALIFIER = &SYSNAME
After logging out of TSO and logging back in all worked.
Another possibility instead of changing the value of ISPF_TEMPORARY_DATA_SET_QUALIFIER
is to completely remove it or comment it out
by placing /*
to the first two columns or the table record.
That way the extra qualifier is not used at all and temp datasets are stored directly at &SYSUID..SPFLOGx.LIST
instead of &SYSUID..<qual>.SPFLOGx.LIST
.
This is a shortened version of the story. There was a number of try and fail steps in between.