9 Utilities for allocated data sets

There are three Utilities available for displaying and controlling the data sets allocated to your TSO user. These commands are actually TSO commands. These can be, Unlike some other TSO commands, invoked directly in an ISPF command line.

These commands are DDLIST, ISRDDN and ISRFIND.

Basics:

–   DDLIST and ISRDDN are synonyms for exactly the same function, which means you can use either one of them. In further explaining, I will always use DDLIST. Calls to ISRDDN and ISRFIND must always be by TSO preceded. E.g. TSO ISRDDN and TSO ISRFIND.

–   ISRFIND plays no role in daily work within ISPF because its functions can also be achieved via using the normal ISPF DSLIST function. Therefore, I will not go into details about ISRFIND. If you are interested in ISRFIND, you can simply test the program yourself by typing in TSO ISRFIND in the ISPF command line.

As you may have noticed in the description of the TSO/ISPF logon process, the data sets that allocated are there probably play an important role for your TSO/ISPF user. Therefore, it would be important to have a tool with which you can display the names of the data sets allocated. There are two possibilities to display your allocated data sets.

–   With the TSO, command LISTALC (List Allocation). This command is described in the IBM manual TSO / E Command Reference. It provides, depending on which parameters are used, a list of allocated data sets. If you want to try LISTALC once, you can do it as follows in any ISPF command line using the command: tso listalc st h.

–   With the program DDLIST

The LISTALC command will not explained here because the program DDLIST provides much better information and possibilities to work with the displayed data sets.

9.1 DDLIST – Description and call

The program DDLIST is described in the brochure ISPF User’s Guide Volume 1 in appendix G. There is a description of all possibilities, which DDLIST offers. I copied this description here:

DDLIST can used to manipulate the allocated data sets, but it also provides the ability to answer questions like:

–  Where did a module, which the user has loaded, come from?

–  What data sets contain a specific member?

–  Are the I/O errors and ABENDs the user is getting due to mixed record format allocations?

–   Who is currently allocated to SYS1.BRODCAST?

–   Where and how often will a member in the currently allocated files found?

–  How many members are in the allocated libraries and which libraries are empty?

–  Is the user running ISPF out of LPA or from STEPLIB?

Although DDLIST is a TSO program and must therefore as a TSO program be called, but it can only run under the ISPF interface because it ISPF services uses. To start the program enter into any ISPF panel in the ISPF command line TSO ISRDDN or DDLIST and then press ENTER.

Then the following or a similar panel appears:

Screen 9.1: DDLIST panel display

img9_1.jpg

This display will from left to right divided into three main columns:

1. The columns Blksz Lrecl RCFM Org show the data set characteristics of the data sets appearing in the column Data Set Name. Pressing the PF11 key, you can get more information here about the data sets and their status.

2. In the column Act, can individual commands entered, referring to the rightmost data sets.

3. The columns DDname and Data Set Name contain the relevant information just as the name says.


img1 Tip:
The help function called by pressing PF1 contains comprehensive descriptions the DDLIST program offers.

9.2 DDLIST operation

I want to show the most important uses of DDLIST, as I usually need in practice:

The DDLIST program provides answers to the following questions:

–  Which DSNs are under which DD names allocated?

–  In which of all allocated data sets is a specific member contained?

–  What ENQs do exist now?

–  Does a particular data set have ENQs?

–  Is a specific load program present in the LPA chain; or is it present in the LINKLIST chain; or does it not exist?

–  Which data sets belong to the LINKLIST chain?

–  Which data sets are APF authorized?

The line commands listed in the following table can be before a DD name or a single DSN entered.

Table 9.1: Table of DDLIST line commands

img9_17.jpg

The following chapters contain examples of some of the main functions you can perform with the program DDLIST/ISRDDN.

9.3 Find a member

Sometimes it happens that you execute a procedure online, but you do not get the expected result. This may perhaps be because you accidentally caught an old version of this procedure or an entirely different one of the same name. Such a case can be with the help of DDLIST quite easily identified.

To do this, follow these steps:

–  You call DDLIST.

–  You enter in the command line the command member name or shorter m name. Name is the name of the searched member.

DDLIST will then begin to search all the allocated PDS for the member name.

After completion of the search, there are two possible results:

–   The member was in all data sets not found.

–   The member has been found one or more times.

When a particular member has been found at least once, its name will appear in the left part of the panel next to each PDS in which the member is contained. The previously stationed details are there hidden. You can now enter in the Act column of each of these lines a B for Browse to look at the individual member.

We now search for the member HUGO. We enter DDLIST in an ISPF command line and enter m hugo in the command line of the displayed DDLIST panel. We see the following result:

Screen 9.2: DDLIST search example

img9_2.jpg

We can investigate each of the displayed members by using browse and determine the case, why in the execution of hugo a false result was achieved.

Short cut to find a member:

If you want to find a member very fast, use the following command in the ISPF command line:

ddlist m hugo

When entering this command the following will happen:

–   The DDLIST panel appears and the search run starts immediately.

–   If the search is successful, the display of the DDLIST screen remains and the members found are in the left column displayed.

–  If the search is not successful, the display of the DDLIST screen disappears and the message Member not found appears in the top right corner of the ISPF panel.

9.4 Free a data set allocation

Sometimes it happens that in a running program, a file allocation is carried out, which is not freed for any reason at the end of the program, this allocation still exists.

Now, if we want to use this data set in a batch job, we get the message that this data set is not free and the job remains at WAITING FOR DATA SETS. This problem can be solved using the program DDLIST by entering a FREE command in the line where the allocated data set appears.

We want to see once a case where we allocate an existing data set with DISP=OLD in TSO online. Thereafter, we submit a batch job, which also use this data set in a SYSPROC DD statement.

To allocate the data set allocation we enter in the ISPF menu 6 the following statement and press ENTER:

alloc dd(input) dsn('PROX.LANZ.REXX') old reuse

By using the option OLD in the alloc statement, the data set is firmly exclusively bound to the user who has executed this statement. Now, when a batch job tries to use this data set, the job execution is paused and the following message appears in the job log:

IEF861I FOLLOWING RESERVED DATA SET NAMES UNAVAILABLE TO LANZTC
IEF863I DSN - PROX.LANZ.REXX LANZTC
IEF099I JOB LANZTC WAITING FOR DATA SETS

If we do not know exactly who holds the data set in exclusive access, we can also enlist DDLIST to answer this question. To do so, call DDLIST and enter ENQ in the command line. In the System ENQ Status panel that appears, we enter in the line Minor name prefix the name of the DSN. All other lines remain empty. If we then press ENTER, the following panel appears:

Screen 9.3: Use DDLIST to determine ENQs

img9_3.jpg

In the column Job name we find the names of the jobs or users who are holding this data set. To release this data set we call in our TSO user DDLIST. In the display, we find the data set under the DD associated name INPUT:

img9_4.jpg

We now enter F (FREE) into the Act column in front of the DD name INPUT and press ENTER. This will release this data set in our TSO user and the batch job can proceed.

9.5 Warning when inconsistent data set structures exist

If the CHECK option is set to ON when calling the DDLIST program, it is possible that the following screen display appears:

Screen 9.4: DDLIST shows inconsistent data set characteristics in a concatenated DD

img9_5.jpg

The message in the frame of the above panel means that DDLIST has an inconsistency in the data set characteristics of the data sets in the concatenation of the DD statement SYSEXEC found. This condition can cause that you may not be able to call procedures of this data set chain. This is only a warning. If you ever work in your TSO user with such chains that contain inconsistent data set characteristics, these warnings will be automatically on each call to DDLIST displayed. If you can work perfectly with this structure, this message can be very annoying with the time. Therefore, it is possible to suppress the display of these warnings by entering the command CHECK OFF in the command line of DDLIST.

img Remark:
If you get unexplained crashes when running REXX procedures that are not based on errors in the procedures itself, then you should pay attention to the characteristics of the concatenated data set in the DD names SYSPROC and SYSEXEC. To make this check, enter the command CHECK ON. Then all inconsistent data set characteristics will displayed immediately.

9.6 The display options SHORT and LONG

These two options control the display of DD names with the corresponding DSN to the effect that the DD name is either in front of the first DSN or in a separate line above the first DSN. We want to first look at the display of a DD name when the option is set to SHORT. We enter in the command line first SHORT and then ONLY ISPSLIB and get the following screen:

Screen 9.5: Display of the ISPSLIB chain when option SHORT is active

img9_6.jpg

If we now enter a B for browse in the column Act before the DD name ISPSLIB, we get a screen that contains all members at their initial appearance within all concatenated data sets of ISPSLIB. Here is an excerpt of this display:

img9_7.jpg

The Lib column indicates the relative position within the allocated data sets, in which each member was first found. This means that the displayed members may occur again several times in further behind data sets. These members are with this type of display hidden. If you now want to perform a browse only for the first data set in the chain, then it did not work in a panel that was with the display option SHORT created. It is only possible if no DD name comes in front of the DSN in the first chain line. To adjust the display so that the DD name is on a separate line before each DSN chain, we now enter the command LONG and get the following picture:

 

Screen 9.6: DDLIST panel with display LONG set

img9_8.jpg

If we now again enter b before the DD name, then we get the list shown above with the member display from all DSNs in the ISPSLIB chain.

Now we can also enter a b before the first DSN and thus get only the member list of this single data set:

img9_9.jpg

9.7 Display system library chains

In z/OS, there are three very important library chains. These are:

LINKLIST, PARMLIB and PROCLIB. These three libraries are as follows used:

LINKLIST

This library chain contains all load modules that are available to all users within a z/OS LPAR. By default, only the programs of the z/OS are included there. Normal users can only execute the programs contained therein. The system-programming department can add data sets used in this computer center for production and user needs.

PARMLIB

PARMLIB is a required partitioned data set chain that contains IBM-supplied and installation-created members. It must reside on a direct access volume, which can be the system residence volume. PARMLIB is an important data set in a z/OS operating system.

The purpose of the PARMLIB is to provide many initialization parameters in a pre-specified form in a single data set, and thus minimize the need for the operator to enter parameters. The most important PDS in the PARMLIB is SYS1.PARMLIB. There can be as many PDS in the chain as necessary.

PROCLIB

PROCLIB is a collection of required partitioned data set chains that contain the JCL procedures used to perform certain system functions. The JCL can be for system tasks or for processing program tasks invoked by the operator or the programmer.

The PROCLIB chains are in the JES2 start job defined. See the following JCL:

JCL 9.1: JES2 start JCL

img9_16.jpg

The DD names must be in the range PROC00 to PROC99.


img Remark:
Unfortunately, up to now no command is available in the DDLIST to display the PROCLIB chain. The only way to get information concerning the contents of the PARMLIB chain is to look into the above shown member SYS1.PROCLIB(JES2). On the internet, there are some REXX procedures available for displaying the PROCLIB chains.

9.7.1 Display of parmlib member ALLOCxx

When we talked earlier in the book about the concatenated data sets, a PARMLIB member named ALLOCxx in which the maximum number of sequential concatenated datasets for an LPAR is set mentioned was. We want to display this member now and use the special command PARMLIB of DDLIST:

 

Screen 9.7: Parmlib display using DDLIST

img9_10.jpg

The program DDLIST inserts based on this instruction the DD name PARMLIB with the corresponding DSN chain in our ad, although this DD name was not available in our logon procedure. The possibility of PARMLIB display is a special service of the DDLIST program.

 

We now specifically search for the member ALLOCxx and only in the DD name Parmlib, by using the command m alloc* parmlib and press ENTER command shown above. By specifying alloc* a generic search is performed for all members that start with ALLOC. The following screen appears:

img9_11.jpg

If we enter in the column Act in the line displaying Member: ALLOC* a b and press ENTER, we obtain the display of a BROWSE panel with a member list in which only the member ALLOC00 can be seen. If, as in this case, only one member in the member list is available, you can be sure that this ALLOC00 member is also actively used. Should several members appear, you must ask your system programming department, which member is actively used.

img9_12.jpg

We call now the member ALLOC00, by entering an s before the members name and press ENTER. In the browse display panel appearing, we look for the word TIOT until the following display appears:

img9_13.jpg

The TIOT contains an entry for each DD statement. The size of the TIOT controls how many DDs are per jobstep allowed. By specifying an integer from 16 to 64 as the value of this parameter, the installation controls the default DD allowance. Table 9.2 shows the relationship between the size of the TIOT and the maximum number of DDs allowed. The following table is an excerpt from the IBM manual MVS Initialization and Tuning Reference. The table shows the relationship between TIOT size and allowed DD and unit elements.

 

Table 9.2: Relationship size of TIOT and maximum number of DDs allowed

img9_15.jpg
img Remark:
Single unit DD statements contain only one DSN and therefore one unit.

9.7.2 Display the LINKLIST chain

DDLIST offers the ability to display the LINKLIST chain within the current display. The display of the LINKLIST can be using the DDLIST command linklist performed. The LINKLIST will immediately displayed using the command ddlist linklist. In this

case, not only the LINKLIST will appear in the display, but also all other libraries. See the following excerpt of the DDLIST screen:

 

Screen 9.8: DDLIST LINKLIST display example

img9_14.jpg

Conclusion:
As you can see from these few examples discussed here, the program DDLIST is a very useful tool. Take advantage of it. I recommend familiarizing yourself with additional exercises with the program. To do this, use the extensive help facility of DDLIST program, which is accessible via the PF1 key.

9.7.3 Browsing storage and loaded modules

DDLIST offers a wide range of commands to display virtual storage contents. Only IBM system programmers use this feature. Here the general description of this feature copied from the ISPF User’s Guide Volume I, Appendix G:

You can use the BROWSE command within DDLIST to view the contents of storage within your address space. When you are browsing storage, you can use any of the standard ISPF Browse primary commands. In addition, there are several commands you can use to format and move around in the storage list.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.12.207