Skip to main content


PQ99482: MULTI-ROW FETCH AND INSERT FOR SQL QUERIES. THIS IS A NEW ENHANCEMENT FOR QMF V8 FOR Z/OS.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • Currently a single DB2 request is required to fetch  and insert
    of each row of an answer set. Each interaction to DB2 using the
    QMF call attach and the CICS interface requires the use of Wait/
    Post service. This also adds to the path length of fetching or
    inserting a row of data.
    .
    This APAR will allow QMF to fetch and insert multiple rows
    thereby providing a significant improvement on performance.
    .
    This APAR also addresses the issue of QMF looping in the
    CONNECT TO prompt panel and the CONNECTION LOST panel. Users
    encountering this issue are not able to leave the connection
    panel in QMF.
    *
    This APAR also does a similar change to QMF as DB2 APAR
    PQ98170 does for SPUFI. QMF adds recasting of graphic
    unicode data for RUN QUERY, EXPORT TABLE,PRINT TABLE
    and DISPLAY TABLE when the requestor DB2 is a SBCS
    non-mixed codepage.  The datatype recast is done to
    prevent an SQL code -332. The translation is as follows:
    - GRAPHIC -> CHAR
    - VARGRAPHIC and LONG VARGRAPHIC
               -> VARCHAR
    - DBCLOB  -> CLOB
    This fix does not extend to QMF stored procedure (CALL)
    support.
    *
    SQLCODE332
    *
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All QMF V8.1 users. Using the multiple       *
    *                 row fetch and insert feature of              *
    *                 DB2 UDB for Z/OS V8.1 is optional.           *
    ****************************************************************
    * PROBLEM DESCRIPTION: New function is added to the QMF V8.1   *
    *                      product to take advantage of the DB2    *
    *                      UDB for z/OS V8.1 feature, multiple row *
    *                      fetch and insert. The new function is   *
    *                      dependent upon the release level of the *
    *                      database. For local connections, the    *
    *                      level of the database must be DB2 UDB   *
    *                      for z/OS V8.1 running in NFM (DSN08015  *
    *                      or higher).  For remote connections,    *
    *                      both the level of the requestor and     *
    *                      server must be DB2 UDB for z/OS V8.1    *
    *                      running in NFM (DSN08015 or higher).    *
    *                      Use of this feature is optional and     *
    *                      must be turned on at QMF initialization *
    *                      to be active. The new QMF startup       *
    *                      parameter DSQSMRFI was created for this *
    *                      task. This PTF includes several new QMF *
    *                      packages.  After you apply the PTF, the *
    *                      QMF bind runtime packages job, located  *
    *                      in QMF810.SDSQSAPE(DSQ1BPKG), must be   *
    *                      run in every single database server     *
    *                      that is accessed by QMF V8.1            *
    *                      (regardless of database level). All     *
    *                      users will need to run the bind job,    *
    *                      even if the new function is not turned  *
    *                      on. For more information on the         *
    *                      benefits of multiple row fetch and      *
    *                      insert, the DB2 UDB for z/OS V8.1       *
    *                      documentation should be consulted.      *
    ****************************************************************
    * RECOMMENDATION: This PTF includes several new QMF packages.  *
    *                 After applying the PTF, the QMF bind         *
    *                 runtime packages job, located in             *
    *                 QMF810.SDSQSAPE(DSQ1BPKG), must be run in    *
    *                 every single database and server that is     *
    *                 accessed by QMF V8.1.  Previous levels of    *
    *                 QMF runtime code will continue to function   *
    *                 even after the bind of the new packages.     *
    *                 All users will need to run the bind job,     *
    *                 even if the new function is not turned on.   *
    ****************************************************************
    With this PTF, QMF adds the ability to use the DB2 UDB for
    z/OS V8.1 performance feature, multiple row fetch and insert.
    The following commands and QMF processes can benefit if this
    new feature is enabled:
    BOTTOM/FORWARD
    DISPLAY TABLE
    DPRE
    PRINT DATA/TABLE
    RUN QUERY/PROC (includes stored procedure enablement)
    SAVE DATA
    COMPLETING A REPORT
    *
    In order to take advantage of the new feature the following
    items must happen (details follow):
    -Apply the PTF
    -Bind the new packages in all databases
    -Make sure the level of the database is correct
    -Enable the new function at QMF initialization
    *
    Apply the PTF:
    This PTF ships several new database modules to support the new
    function.  Precautions have been taken so that if fallback is
    necessary, previous levels of packages are still available and
    do not have to be rebound.  Runtime code from before and after
    this PTF can both still access a database.
    *
    Bind the new packages in all databases:
    After you apply the PTF, the QMF bind runtime packages job,
    located in QMF810.SDSQSAPE(DSQ1BPKG), must be run in every
    single database and server that is accessed by QMF V8.1. All
    users will need to run the DSQ1BPKG bind job, even if the new
    function is not turned on.  Failure to run the bind job will
    result in message 'MSGDSQ22889 DBRM not found for DSQIFSQ7
    module in xxxx database.  SQLCODE returned was -805' or
    'MSGDSQ22889 DBRM not found for DSQIFSQ8 module in xxxx
    database.  SQLCODE returned was -805'. The message received
    depends on database level and DSQSMRFI value.  QMF will not
    initialize at the PTF level code if the new packages are not
    bound in the database.
    *
    Make sure the level of the database is correct:
    For local scenarios, multiple row fetch and insert is
    available only in DB2 UDB for z/OS V8.1 databases running in
    NFM (DSN08015 or higher).  For remote connections, *both* the
    level of the requestor and server must be at least DB2 UDB for
    z/OS V8.1 running in NFM (DSN08015 or higher). QMF detects the
    level of the database and will run the appropriate level of
    fetch and insert for the database level.  QMF will still
    function properly with all previously documented levels of
    databases.
    *
    Enable the new function at QMF initialization:
    A new QMF startup parameter, DSQSMRFI, is added to allow the
    QMF Administrator to enable or disable the DB2 multiple row
    fetch and insert feature. This startup parameter will be valid
    for the entire QMF session. If enabled via the startup
    parameter, multiple row fetch and insert will be used when
    both the database requestor and the database server are DB2
    UDB for z/OS V8.1.5 or higher. The following information will
    be added to the Installing and Managing QMF for TSO/CICS on
    this parameter:
    *
    Chapter 10. Customizing your start procedure
     DSQSMRFI (enable DB2 multi-row fetch and insert)
     Parameter name
      DSQSMRFI
     Short form
      MR
     Valid values
      YES or NO
     Default
      NO
    *
    Set DSQSMRFI to specify if you want the QMF session being
    started to use DB2 UDB for z/OS V8.1 feature, multiple row
    fetch and insert.  Using multi-row fetch and insert will
    increase the performance for many QMF commands (for example;
    Display Table, Export Data or Export Table, Print Data or
    Print Table, Run Retrieval Query or Retrieval Procedure, Save
    Data, DPRE and Bottom and Forward when viewing a QMF report).
    When DSQSMRFI=YES, QMF will process using DB2 multi-row fetch
    and insert if the current database connection allows it.
    Multi-row fetch and insert is allowed when both the database
    requestor and the database server are DB2 UDB for z/OS V8.1.5
    or higher.  If the QMF session is started with DSQSMRFI=YES
    but the database connection does not allow multi-row fetch and
    insert (database server and database requestor are not DB2
    z/OS V8.1.5 or higher), then single row fetch will be used for
    all QMF commands.
    The default setting is DSQSMRFI=NO.  This can be overridden in
    the DSQSCMDE EXEC file by setting DSQSMRFI = "YES". The
    DSQSCMDE exec is located in data set
    QMF810.SDSQEXCE(DSQSCMDE).  DSQSMFRI may also be overridden on
    the QMF initialization command using DSQSMRFI=YES or MR=YES:
     DSQQMFn MR=YES
     QMFn MR=YES
    *
    QMF does not ship an updated version of DSQSCMDE EXEC with
    this PTF. Users wishing to override DSQSMRFI using DSQSCMDE
    will need to update the exec manually.  See the IBM QMF
    support Web site
    http://www.ibm.com/software/data/qmf/support.html
    for a sample DSQSCMDE EXEC illustrating how this update would
    be made.  Users using the DSQSCMD startup parameter should be
    aware of this change. After apply of this PTF, QMF will
    continue to function with the older versions of DSQSCMDE EXEC
    (with or without the DSQSMRFI parameter update).  Note to
    users who update DSQSCMDE with the new DSQSMRFI parameter: QMF
    V8.1 code levels prior to this PTF and previous levels of QMF
    will not function with DSQSCMDE EXEC updated with the new
    DSQSMRFI parameter. Users that share DSQSCMDE EXEC with
    different levels of QMF should take precautions. If a level of
    QMF prior to the PQ99482 fix tries to use a DSQSCMDE EXEC
    containing the new DSQSMRFI parameter, an error message of:
    MSGDSQ50405 'Number of REXX program parameters returned should
    be 14, not 15' will be received.
    *
    Limitations on support:
    When DSQSMRFI=YES and your current database connection
    supports DB2 multiple row fetch and insert, care must be taken
    when using 3-part names in commands.  If the database
    identified in the 3-part name is not DB2 z/OS V8.1.5 or
    higher, your QMF command will fail.  If you are using 3-part
    names in this situation, the QMF session should be started
    with DSQSMRFI=NO to avoid a failure.
    *
    Note for those applying this PTF but not enabling the new
    feature:
    This feature is shipped turned off (DSQSMRFI=NO) but still
    requires that packages be bound in every database that QMF
    V8.1 accesses.  Even if the new feature is not desired or
    turned on, if this PTF is applied, the packages must be bound.
    SEARCH KEYWORDS: DSQ50405 SQLCODE805 DSQ22889
    

Problem conclusion

Temporary fix

Comments

  • ž**** PE05/10/05 FIX IN ERROR. SEE APAR PK12642  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PQ99482

  • Reported component name

    QMF-QUERY MGMT

  • Reported component ID

    566872101

  • Reported release

    810

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function

  • Submitted date

    2005-01-13

  • Closed date

    2005-09-01

  • Last modified date

    2005-12-01

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK06848

Modules/Macros

  • DSQCBRDI DSQCBRD2 DSQCDBUG DSQCELTT DSQCEMSG
    DSQCEMSS DSQCMDNM DSQCPARM DSQCRSNC DSQDLCMD DSQEFSQ7 DSQEFSQ8
    DSQEPSQ7 DSQEPSQ8 DSQESDGN DSQESDT7 DSQESDT8 DSQGDRIP DSQGDRPC
    DSQIDOPT DSQIFSQL DSQIFSQ7 DSQIFSQ8 DSQIISQL DSQIMRF  DSQIMSGM
    DSQIPSQL DSQIPSQ7 DSQIPSQ8 DSQISDGN DSQISDTA DSQISDT7 DSQISDT8
    DSQ0BPKL DSQ1BPKB DXECVS   DXEDBM   DXEDGN   DXEERP   DXEIMRF
    DXEISDGN DXENRW   DXEORC   DXEPPP   DXESQL   HSQ8810J
    

Fix information

  • Fixed component name

    QMF-QUERY MGMT

  • Fixed component ID

    566872101

Applicable component levels

  • R810 PSY UK06848

       UP05/09/02 P F509

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page

Please take a moment to complete this form to help us better serve you.

This material provides me with the information I need.






This material is clear and easy to understand.






Did the information help you to achieve your goal?

What updates, improvements, or related information would you like to see in this document?

Your response will be used to improve our document content. Requests for assistance, if applicable, should be submitted through your normal support channel as we cannot respond from this site.


Input the verification number to submit feedback:



Maintenance Window

Unscheduled Maintenance Window

There is no unscheduled maintenance scheduled at this time.

Document information

Product categories:

Software

Data Warehouse and Industry Data Models

Data Warehouse Servers and Appliances

DB2 Query Management Facility

QMF for TSO/CICS


Software version:

810


Reference #:

PQ99482


IBM Group:

Software Group


Modified date:

2005-12-01

Translate my page