MAINFRAME > Tips & Techniques > Systems Management

Exploring TSO and ISPF

A better understanding of the logon process is helpful when diagnosing problems in TSO/ISPF

A better understanding of the logon process is helpful when diagnosing problems in TSO/ISPF

Note: This is the first article in a two-part series.

In this article I'll explain the processes that a typical mainframe systems programmer establishes during z/OS* installation and customization to provide the facility we all know as Time Sharing Option and Interactive Systems Productivity Facility (TSO/ISPF). A better understanding of the logon process is helpful when diagnosing problems in TSO/ISPF - and can be useful when occasionally you need to step out of ISPF and perform some lower-level function that requires native TSO processing.


So what exactly is TSO? At its most basic, each TSO interactive session is actually just a special kind of batch job. It wouldn't even be that special were it not for the fact that this job communicates in an interactive session with a terminal - the one you're logged onto. The TSO batch job is an invocation of the program named IKJEFT01 - known as the Terminal Monitor Program (TMP). Remember that prior to TSO (and its more primitive forerunners), mainframe processing consisted of batch work only. So the invention of a batch program that could monitor a connected device such as a display workstation was quite a significant development. This effectively opened up the machine room to a network of such terminals installed in various parts of the enterprise. Previously any work needing to be done on the mainframe was sent as punched cards and tapes to the central complex where system operators would load and execute the work on your behalf, returning the printout if you were fortunate and all ran well.

New users to the mainframe may not realize that ISPF is actually an application program that executes within a TSO environment - you can't have ISPF without TSO first. Prior to ISPF's development, programmers and system administrators would perform all their work from within the TSO (command-only) environment. Today ISPF is usually the default environment used by the developer and administrator communities in most z/OS installations. Often ISPF is automatically invoked as part of the TSO logon process and while TSO is still there under the covers many users never see or use this environment directly.

An analogy for new mainframe users would be the relationship between the old DOS and earlier versions of Windows*. Although today DOS has been somewhat absorbed into the Windows graphical environment as an application you can run, earlier versions of Windows actually required DOS to be loaded prior to Windows installation. These Windows versions would use services provided by DOS and present the results in the Windows GUI. For comparative clarity, ISPF can be described as the mainframe equivalent of the Windows GUI, and TSO would be DOS - the command line.

TSO Logon Procedures

If TSO is just a batch job, where is this batch job - the job control language (JCL) - and how does it work? First, look at the default logon screen for TSO and explore some of the fields (see Figure 1). Usually defaults are supplied by the system administrators and most people take them for granted.

The Procedure field, commonly known as "logon proc," names the JCL to be executed for this TSO session. The JCL used for a TSO session is a Job Entry Subsystem (JES) Cataloged Procedure. If you know the location of the cataloged procedure for JES itself, you can examine the list of data sets searched when a cataloged proc is invoked. Usually you'll see something similar to this in the JES proc (see Figure 2).

The data set names will differ in your system and you may notice two or more DDs defined such as PROC00 and PROC01, etc. The suffix in use for the PROCnn DD is determined in the JES parameters, contained in a data set allocated to DD HASPPARM.

When you log on to TSO, the data sets allocated to the PROCnn DD are searched for the member that you specified as your logon procedure on the TSO/Extended (TSO/E) logon screen. The logon proc is executed if found, invoking the program IKJEFT01 and allocating the DDs specified in its JCL. An example logon procedure is shown in Figure 3.

From our TSO logon screen in Figure 1, we see the content of the SYSPRG member located via the PROC00 DD in the JES2 JCL.

Michael Cairns works for IBM as a technical specialist in the Tivoli zSecure range of software. Michael can be reached at

comments powered by Disqus



2018 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

Optimal Service Delivery

Overcome eight key challenges and reduce costs


An Accurate Benchmark Is Important

Advice for the Lazy Administrator

Steps you can take to avoid late nights and system frights.

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
Mainframe News Sign Up Today! Past News Letters