DB2 graphic  QMF Version 8

Setting up and starting QMF on ISPF

You can let users start QMF using ISPF services. You can add JCL to the ISPF environment that defines QMF resources:

You can use any of the previous methods to start the other methods. For example, you can run an initial dialog from a CLIST.

If you use JCL that points to the QMF program location, the JCL must always be in an initial dialog.

To run QMF under ISPF, you must start the QMF program dialog using the ISPF SELECT service. When a TSO call or a TSO command is used, the results can be unpredictable.

Restrictions:

  1. You cannot run QMF as a command dialog. For example, the following statements are not valid:
    ISPEXEC SELECT CMD(DSQQMFE) NEWAPPL(DSQE)
    ISPSTART CMD(DSQQMFE) NEWAPPL(DSQE)
  2. If QMF is started as an initial dialog, you cannot enter QMF from a split screen or create a split screen during a QMF session.

Starting QMF from an ISPF menu

If you choose to set up a menu option to start QMF, the menu must point to QMF. Figure 9 shows a sample definition for the ISPF master application menu and shows how to add an option to the menu. In this definition, Option 2 was added for reaching QMF through a CLIST.

Figure 9. Sample Master Application menu
)BODY
%--------------------- MASTER APPLICATION MENU -----------------
%SELECT APPLICATION ===>_OPT  +
%                                                  +USERID    -
%                                                  +TIME      -
%  1 +SPF     - SPF PROGRAM DEVELOPMENT FACILITY   +TERMINAL  -
%  2 +QMF     - RUN QMF UNDER THE ABC SUBSYSTEM    +PF KEYS   -
%
%
%
%
%
%
%
%
%
%  P +PARMS     - SPECIFY TERMINAL PARAMETERS AND LIST/LOG DEFAULTS
%  X +EXIT      - TERMINATE USING LIST/LOG DEFAULTS
%
+PRESS%END KEY+TO TERMINATE +
%
)INIT
)PROC

 &SEL = TRANS( TRUNC (&OPT,'.')
               1,'PANEL(ISP0PRIM) NEWAPPL'
                2,'PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB PARM(DSQSSUBS=ABC)'
            /*                             */
            /* ADD Other APPLICATIONS HERE */
            /*                             */
                P,'PANEL(ISPOPT)'
                X,'EXIT'
                ' ',' '
                  *,'?' )
)END

The direct menu approach to starting QMF can be faster than the CLIST approach. If you allocate all user resources through TSO logon procedures, then the CLIST that you create for the menu option has no resources to allocate. The CLIST is left with a single function, starting QMF, which can be run without a CLIST.

You can add more than one option to your menu. Suppose, for example, that ABC is an experimental DB2 subsystem and DSN is the production subsystem. You can now add two options to your menu: one for each subsystem. You might have each option call a different CLIST, or you might create one CLIST with a positional parameter for the subsystem. The added lines in the menu's PROC section might look like this:

2,'PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB PARM(DSQSSUBS=DB2SSFDX)'
3,'PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB PARM(DSQSSUBS=DB2SSFDY)'

Using LIBDEF statements on z/OS

You may optionally use the ISPF LIBDEF statements to allocate QMF libraries during an ISPF session.

Allocate the program libraries to a unique QMF DD NAME of DSQLLIB to use the ISPF LIBDEF service for QMF and DB2 programs. Then specify DD NAME DSQLLIB as the ID value in the LIBRARY option on the ISPF LIBDEF statement.

For example, to allocate QMF and DB2 product libraries, write a TSO ALLOCATE and ISPF LIBDEF statement:

ALLOC FI(DSQLLIB) DA('QMF810.SDSQEXIT,'QMF810.SDSQLOAD',
'DSN810.SDSNEXIT','DSN810.SDSNLOAD') SHR REUSE
LIBDEF ISPLLIB LIBRARY ID(DSQLLIB)

To allocate program libraries using the ISPF LIBDEF service, write a CLIST similar to Figure 10. The preceding CLIST assumes that ISPF is already running and has other ISPF resources already allocated:

Figure 10. ISPF LIBDEF CLIST
/****************************************************/
/*  Allocate QMF and DB2 Programs to DSQLLIB        */
/****************************************************/
ALLOC FI(DSQLLIB) SHR REUSE             +
           DA('QMF810.SDSQEXIT',           +
               'QMF810.SDSLOAD',             +
                 'DSN;810.SDSNEXIT',           +
                 'DSN;810.SDSNLOAD')
/****************************************************/
/*  Allocate  QMF libraries used for GDDM           */
/****************************************************/
ALLOC FI(ADMGGMAP) DA('QMF810.SDSQMAPE')  SHR REUSE
ALLOC FI(ADMCFORM) DA('QMF810.DSQCFORM') SHR REUSE
ALLOC FI(DSQUCFRM) DA('QMF810.DSQUCFRM') SHR REUSE
ALLOC FI(ADMGDF)   DA('QMF72.CHARTLIB')  SHR REUSE
/****************************************************/
/*  Allocate QMF product data sets                   */
/****************************************************/
ALLOC FI(DSQPRINT) SYSOUT(Z) LRECL(133) RECFM(F B A ) BLKSIZE(1330)
ALLOC FI(DSQPNLE)  DA('QMF810.DSQPNLE') SHR REUSE
ALLOC FI(DSQDEBUG) SYSOUT(Z) LRECL(121) RECFM(F B A) BLKSIZE(1210)
ALLOC FI(DSQUDUMP) SYSOUT(Z) LRECL(125) RECFM(V B A) BLKSIZE(1632)
ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) CYLINDERS
ALLOC FI(DSQEDIT) NEW UNIT(SYSDA)
/******************************************************/
/*  Issue ISPF LIBDEF for QMF libraries used for ISPF */
/******************************************************/
ISPEXEC LIBDEF ISPLLIB LIBRARY ID(DSQLLIB)
ISPFEXE LIBDEF ISPPLIB DATASET ID('QMF810.SDSQPLBE')
ISPFEXE LIBDEF ISPSLIB DATASET ID('QMF810.SDSQSLBE')
ISPFEXE LIBDEF ISPMLIB DATASET ID('QMF810.SDSQMLBE')
/*****************************************************/
/*  Start QMF dialog using PASSLIB                   */
/*****************************************************/
ISPEXEC SELECT PGM(DSQQMFE) NEWAPPL(DSQE) PASSLIB
/*****************************************************/
/*  Free ISPF LIBDEF for QMF libraries used for ISPF */
/*****************************************************/
ISPEXEC LIBDEF ISPLLIB LIBRARY ID( )
ISPEXEC LIBDEF ISPPLIB LIBRARY ID( )
ISPEXEC LIBDEF ISPSLIB LIBRARY ID( )
ISPEXEC LIBDEF ISPMLIB LIBRARY ID( )
FREE       FI(DSQLLIB)
/*****************************************************/
/*  Free  QMF product data sets                       */
/*****************************************************/
FREE  FI(DSQPRINT)
FREE  FI(DSQPNLE)
FREE  FI(DSQDEBUG)
FREE  FI(DSQUDUMP)
FREE  FI(DSQSPILL)
FREE  FI(DSQEDIT)
/****************************************************/
/*  Free  QMF libraries used for GDDM               */
/****************************************************/
FREE  FI(ADMGGMAP)
FREE  FI(ADMCFORM)
FREE  FI(DSQUCFRM)
FREE  FI(ADMGDF)

Starting QMF in batch mode in ISPF

You can start QMF in batch mode to potentially save resources and time.

You can start QMF using ISPF with or without using a CLIST on z/OS. Place either of the following statements in the SYSTSIN data set of your JCL:

PARM establishes the appropriate operating mode (DSQSMODE=B), identifies the procedure to be run (DSQSRUN=aaa.bb), and can include variables for that procedure.

The ellipsis after PARM represents optional parameter values that the user might want to include in addition to the required values for the DSQSMODE and DSQSRUN parameters. The name of the procedure must contain the authorization ID of the owner. For example, assume that a procedure was named PROCA and owned by the user authorization ID, JONES.

Figure 11. Starting QMF in batch mode in ISPF with the user and procedure names
ISPSTART PGM(DSQQMFE) NEWAPPL(DSQE) PARM(DSQSMODE=B,DSQSRUN=JONES.PROCA)

After the procedure runs, QMF ends and returns control to ISPF. ISPF can then continue with another procedure or command. When ISPF stops on z/OS, TSO runs the next TSO command in SYSTSIN. When all commands in SYSTSIN have been run, the job step ends.

Examples of starting QMF under ISPF

The following examples show how to start and pass parameters to QMF under ISPF:


Go to the previous page Go to the next page

Downloads | Library | Support | Support Policy | Terms of use | Feedback
Copyright IBM Corporation 1982,2004 Copyright IBM Corporation 1982, 2004
timestamp Last updated: March, 2004