DD statements in a logon procedure can allocate resources for the user.
You can provide new QMF users with a TSO logon procedure that is called when the user logs on. This cataloged procedure calls the Terminal Monitor Program (TMP).
The TMP is the principal interface between user and terminal during a TSO session. If your installation uses its own TMP, rather than one supplied by IBM, some of the following information might not apply. You can develop CLISTs or execs that users run to start QMF. Within these CLISTS or execs, you can allocate many of the required data sets through TSO ALLOCATION statements. In particular, you can allocate a data set that is unique to the user.
The following statement within a CLIST allocates a unique library for its user's CHART forms. The name of the allocated library begins with the user's TSO logon ID, represented by the variable &SYSUID:
ALLOC DDNAME(DSQUCFRM) DSNAME('&SYSUID...CHARTLB.DATA') OLD
You can also use TSO FREE statements in a CLIST or exec to deallocate data sets after the QMF session terminates.
To create a TSO exec to start QMF, you need to ensure that the program load libraries, modules, and data sets are available to QMF, and that GDDM and DB2 requirements are met.
When you start QMF under TSO, you assign authorization IDs through the DB2 exit routine, DSN3@ATH (IBM also supplies a default exit routine). If the user's TSO logon has been passed to it, the routine returns a list of the assigned authorization IDs. If you want to use the default exit routine DSN3@ATH without changes:
Use whichever ddname is established by your installation for the TSO search order for execs. This search order is affected by settings in the TSO default modules IRXTSPRM and IRXISPRM, the TSO EXECUTIL command, and the TSO ALTLIB command. Figure 40 lists the datasets used by TSO. If you do not know your installation's search order for REXX execs, allocate SDSQEXCE to both SYSEXEC and SYSPROC.
//************************************************************* //* DATASETS USED BY TSO * //SYSPROC DD DSN=SYS2.CLIST,DISP=SHR * CLIST Library // DD DSN=QMF720.SDSQCLTE,DISP=SHR //SYSEXEC DD DSN=SYS2.EXEC,DISP=SHR // DD DSN=QMF720.SDSQEXCE,DISP=SHR //SYSHELP DD DSN=SYS1.HELP,DISP=SHR //EDT DD DSN=&EDIT,UNIT=SYSDA,SPACE=(1668,(40,12))
You can also use the TSO CALL command to start QMF. Specify the name of the QMF load library, and pass the optional program parameters following the data set name, as in the following example:
CALL 'QMF720.SDSQLOAD(DSQQMFE)' 'DSQSMODE=I,DSQSSUBS=DB2T'
The QMF load library becomes a TASKLIB for the duration of the CALL command. However, you need to give QMF access to the DB2 and GDDM libraries in order to LOAD program interfaces to those products. In most cases, DB2 and GDDM libraries are not part of TASKLIB. IF DB2 and GDDM libraries are not available, QMF terminates with an error.
You can start QMF under TSO by entering DSQQMFE either from the command line in the READY mode, or in a CLIST or exec:
DSQQMFE DSQSBSTG=123456,DSQSDBUG=ALL,DSQSIROW=0,DSQSRUN=SAM.PROG1
When QMF is started in TSO independently of ISPF, the following return codes are valid:
To start QMF without using ISPF services, place the following statement in the SYSTSIN data set of your JCL on OS/390:
DSQQMFE ...DSQSMODE=B,DSQSRUN=aaa.bbb
where DSQSMOD=B establishes the appropriate operating mode, and DSQSRUN=aaa.bbb identifies the procedure to be run. The procedure can include a variable as the procedure name; it should contain the authorization ID of the owner.
The ellipsis represents optional parameter values that the user can include in addition to the required DSQSMODE and DSQSRUN parameters.
The following examples show how to start and pass parameters to QMF operating independently of ISPF. The first two statements for TSO turn on L2 tracing (DSQSDBUG=NONE), pass a value of 50,000 for DSQSBSTG (maximum storage for reports), and pass a value of B (batch) for DSQSMODE (mode of operation).:
DSQQMFE DSQSBSTG=50000,DSQSDBUG=NONE,DSQSMODE=B
DSQQMFE DSQSRUN=Q.IPROC(&&TABLE=Q.STAFF)
This statement uses the DSQSRUN parameter:
The DSQSRUN parameter as specified in this example results in the following QMF command:
RUN Q.IPROC(&TABLE=Q.STAFF