IBM Support

PM60830: IMS DRA OPEN THREAD PERFORMANCE OTT THREAD SAFE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • DRA Open Thread performance issues.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All IMS V12 CCTL users exploiting DRA Open   *
    *                 Thread. This includes CICS 4.2 users.        *
    ****************************************************************
    * PROBLEM DESCRIPTION: Performance degredation issues          *
    *                      specifically encountered by CICS TS 4.2 *
    *                      users that exploit threadsafe for       *
    *                      IMS DRA threads.                        *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    Two significant performance degredation issues are addressed:
    1. DFSPRRC0 and DFSPAT10 are issuing GETMAIN and FREEMAIN for
       every DRA thread request.
    2. A WLM Performance Block (PB) is obtained and released every
       PSB schedule.
    
    Additional issues:
    Thread hung in create thread, schedule PSB proessing. The save
    flow contains the following module flow:
    DFSDASC0 -> DFSDASP0 -> DFSDBLM0 -> DBFINTE0 -> DFSISWIT
    The TCB is waiting to be resumed by ISWITCH TO=RET that has
    already been done. However, the thread dispather work area
    contains the wrong TCB.
    

Problem conclusion

  • GEN:
    KEYWORDS:
    
    *** END IMS KEYWORDS ***
    Performance issue 1 solution:
    =============================
    Reduction of GETMAIN and FREEMAIN calls from DFSPRRC0 and
    DFSPAT10.
    DFSPRRC0 will build and utilize cell pool storage for itself
    Module and Macro changes supporting this change:
    DFSPRRC0 - Build and utilize cell pool storage for itself
               as well as provide the needed storage for DFSPAT10.
    DFSPAT10 - Set compiler option to specify DFSPRCST gets module
               storage.
    
    DFSPAC   - Add CPOOL storage ID field
    
    
    Performance issue 2 solution:
    =============================
    Eliminate calling WLM to obtain and release PBs for every PSB
    schedule.
    Obtain a pool of WLM performance blocks during connection
    to IMS processing for DRA Open Thread environment.
    Threads will claim a PB from the pool during signon
    and only release it at signoff or abnormal thread termination.
    
    
    IMSAUTH  - add WLM_PBPOOL function code x'84'
             New return codes for WLM_PBPOOL:
             RC  - Meaning
             04    Caller is not under the TCB that issued IDENTIFY.
             08    Dependent Region Directory block not located.
             0C    Region IDENTIFY block not found.
             10    Call made from unsupported region type.
             14    Invalid function request.
             20    Create caller not authorized
             24    Second Create PB Pool is not allowed.
             28    Failed to get storage for DFSWLMPP block.
             2C    WLM Get PB blocks failed for CREATE request.
             40    No PB Pool block was located for ADD request.
             44    ADD request not issued from same TCB as CREATE.
             48    Failed to get storage for ADD PBs request.
             4C    WLM Get PB blocks failed for ADD request.
             60    DELETE caller is not authorized.
    
    DFSV4200 - add WLM_PBPOOL function, CREATE, ADD and DELETE
             CREATE subfunction - Get PB Pool header, DFSWLMPP.
               Obtain initial pool of PBs. The PBCOUNT is equal
               to min + max thread.
             ADD subfunction - Get additional PBCOUNT PBs
             DELETE subfunction - Delete all PBs and related
               PB pool storage
    
    DFSAERI0, DFSPRA10 - Add MAXTHD to DFSSSOB IDENTIFY call
    DFSDASI0 - Issue IMSAUTH WLM_PBPOOL CREATE during IDENTIFY
               processing.
               Module is converted to use branch relative.
    DFSDASS0 SIGNON - Claim PB from pool during signon processing.
               If no PBs are available, set signon feedback and
               defer PB claim to PSB schedule.
             SIGNOFF - Return pool PBs to the pool for reuse.
    
    DFSPINI0 - Check signon feedback for PBs needed and enqueue
               request more PBs to DRA control routine DFSPRRA0.
    DFSDASP0 - Claim PB from pool is needed, set schedule feedback
               if more PBs needed. If no PBs are available from the
               pool, issue DFSWLME call to obtain one.
    DFSPSCH0 - Check schedule PSB feedback for PBs needed and
               enqueue request to DRA control.
    DFSDAST0 - Delete WLM PB for DRA Open Thread if not obtained
               from the pool
    DFSDTTA0 - Reset flag bits in DFSWLMWK.
    DFSDASD0 - Issue IMSAUTH DELETE during Terminte Identify call
               processing.
    DFSPRRA0 - Add routine to issue IMSAUTH ADDPB
    
    DBFDBF00 - Recompile for DFSSSOB changes to CNBA offset
    
    DFSDPDIR - Add anchor pointer DPPBPOOL for DFSWLMPP block
    DFSPQE   - Add PQE function to request additional PB pool
    DFSSSOB  - Add MAXTHD= parameter for IDENTIFY function.
               Relocated SSPICNBA.
    DFSTRSOB - Updated SSOB byte trace with codes for PB pool
               diagnostic trace codes.
    DFSWLME  - Add PBPOOL request to obtain a pool of PB from WLM
    DFSWLML  - Add PBPOOL support to delete PB by address
    DFSWLMPP - New macro defines the WLM PB pool blocks.
    
    
    Hung thread in PSB schedule.
    ============================
    DFSDASC0 - Update the dispatcher workarea with the current TCB
               for DRA Open Thread calls.
    
    
    Updates to IMS V12 documentation:
    
    GC189715xx  Messages and Codes, Volume 4: IMS Component Codes
    Chapter 2:  IMS system services return codes
    Section: IMSAUTH return codes
    Subsection: IMSAUTH WLM_PBPOOL (84)
    ---------------------------------------------------------------
     Return Code - Meaning
     04            Caller is not under the TCB that issued IDENTIFY.
     08            Dependent Region Directory block not located.
     0C            Region IDENTIFY block not found.
     10            Call made from unsupported region type.
     14            Invalid function request.
     20            Create caller not authorized
     24            Second Create PB Pool is not allowed.
     28            Failed to get storage for DFSWLMPP block.
     2C            WLM Get PB blocks failed for CREATE request.
     40            No PB Pool block was located for ADD request.
     44            ADD request not issued from same TCB as CREATE.
     48            Failed to get storage for ADD PBs request.
     4C            WLM Get PB blocks failed for ADD request.
     60            DELETE caller is not authorized.
    

Temporary fix

  • *********
    * HIPER *
    *********
    

Comments

  • POSTREQ PM97386
    PINNED RP13/09/18 (ATXT) TO ADD POSTREQ PM97386 INFO.
     **** PE13/09/18 PTF IN ERROR. SEE APAR PM97386 FOR DESCRIPTION.
    ×**** PE13/09/19 FIX IN ERROR. SEE APAR PM97386  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM60830

  • Reported component name

    IMS V12

  • Reported component ID

    5635A0300

  • Reported release

    200

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2012-03-20

  • Closed date

    2012-09-14

  • Last modified date

    2014-10-20

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

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

    UK81843

Modules/Macros

  •    DBFDBF00 DFSAERI0 DFSDASC0 DFSDASD0 DFSDASI0
    DFSDASP0 DFSDASS0 DFSDAST0 DFSDPDIR DFSDTTA0 DFSPAPL  DFSPAT10
    DFSPINI0 DFSPRA10 DFSPRP   DFSPRRA0 DFSPRRC0 DFSPSCH0 DFSSSOB
    DFSTRSOB DFSV4200 DFSWLME  DFSWLML  DFSWLMPP DFSWLMWK IMSAUTH
    

Publications Referenced
GC18971500    

Fix information

  • Fixed component name

    IMS V12

  • Fixed component ID

    5635A0300

Applicable component levels

  • R200 PSY UK81843

       UP12/09/18 P F209 Ž

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.

[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Platform":[{"code":"PF054","label":"z Systems"}],"Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
14 December 2020