IBM Support

PM31420: CCTL DRA OPEN THREAD TCB SUPPORT

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as new function.

Error description

  • CCTL DRA Open Thread TCB support.
    

Local fix

  • Additional Keywords: kixdcfcic670
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All V12 users of CCTL DRA including          *
    *                 CICS Thread Safe TS 4.2 users.              *
    ****************************************************************
    * PROBLEM DESCRIPTION: IMS V12 CCTL DRA Open Thread TCB        *
    *                      enhancement.                            *
    *                      Provide CCTL exploiters the option to   *
    *                      direct the DRA not to attach dedicated  *
    *                      thread TCBs and allow DL/I processing   *
    *                      to be done on the application TCB.      *
    ****************************************************************
    * RECOMMENDATION: INSTALL CORRECTIVE SERVICE FOR APAR/PTF      *
    ****************************************************************
    IMS V12 CCTL DRA Open Thread TCB enhancement.
    Prior to this enhancement, the IMS CCTL DRA attaches dedicated
    thread TCBs in the CCTL address space.  PSB schedule requests
    are assigned one of these thread TCBs.  All subsequent thread
    related DL/I requests result in the application's task being
    suspended, processing switches onto the DRA thread TCB to
    complete the DL/I request.  Upon returning, the application's
    task is resumed, switching processing off the DRA thread TCB
    which is then suspended awaiting the next DL/I request.  This
    sequence of events is repeated for each DL/I call, syncpoint
    requests and thread termination at which time the DRA thread TCB
    becomes available for a new PSB schedule request.
    

Problem conclusion

Temporary fix

Comments

  • POSTREQ PM47327
    REPINNED RP11/09/10 (ATXT) TO ADD POSTREQ PM47327 INFO.
     **** PEyy/mm/dd PTF IN ERROR. SEE APAR PM47327 for description.
    
    IMS V12 CCTL DRA Open Thread TCB (OTT) enhancement provides the
    option for CCTL exploiters to direct the DRA not to attach
    dedicated DRA thread TCBs.  This avoids the overhead of TCB
    switching and lead to improved parallel processing.
    CICS TS 4.2 extends the threadsafe support to the DBCTL / DRA
    interface taking advantage of the DRA Open Thread TCB support.
    ---------------------------------------------------------------
    How to activate DRA Open Thread TCB:
    The DRA Open Thread TCB option is either in use or not in use
    for the duration of the instance of the DRA.
    ---------------------------------------------------------------
    Initialization request (PAPLFUNC= PAPLINIT)
    To request DRA Open Thread TCB activation:
    PAPLFNCL = 3 (PAPLFNC3)
    PAPLDROP flag field
        PAPLOOTT (x'08') set to 1
    On return from INIT request:
    If DRA Open Thread TCB is activated:
    PAPLDLEV flag field
        PAPLOTCB (x'08') set to 1
    If PAPLOTCB is not set to 1, the DRA is not using the Open
    Thread TCB feature.
    The user suspend and resume exits will still be used in certain
    call processes. Continue to specify them if you do not wish to
    use the DRA default exits.
    With the exception of the above, the INIT call processing
    remains the same.
    ----------------------------------------------------------------
    Thread requests (PAPLFUNC= PAPLTFUN)
    In general, all thread requests now process under the caller's
    TCB. The suspend and resume exits will not be called during
    normal thread processing.
    Thread schedule request (PAPLSFNC = PAPLSCHE)
    PAPLCFLG special processing flag byte
        PAPLUFXT (x'02') Unfixed TCB
          Set PAPLUFXT to 1 on the schedule call to indicate to the
          DRA that thread TCB may not be the same TCB for the
          duration of the thread. The TCB may change between the
          time the PSB is scheduled and the time the thread is
          terminated.
    Effect on MINTHRD and MAXTHD
    ==========================
    Because DRA thread TCBs are not attached in this environment,
    MINTHRD takes on a slightly different meaning. MINTHRD will not
    apply to the number of threads attached at DRA initialization
    (because thread TCBs are not attached) but does indicate how
    many thread structures to allocate during initialization. When
    threads are assigned for a schedule request, they will signon
    to IMS at that time. When the thread is signed-on to IMS, it
    will appear in the IMS /DIS A REGION/THREAD command. When the
    active threads exceeds MINTHRD the DRA will slowly signoff
    inactive threads to return to MINTHRD.
    MAXTHRD is effectively unchanged.
    External Changes
    ==============
    DFSPZPxx
    ========
     -DRA startup table is created by coding DFSPRP macro,
      compiling and linking it. See DFSPZP00 for an example.
     -The FUNCLV= value is increased to '3' providing support of
      DRA options
     -If FUNCLV= is specified either change it to specify '3' or
      do not specify and allow it to default to '3'.
    DFSPAPL
    =======
    -PAPLRSNC reason code field added to supplement return codes
     returned in PAPLRETC.
    -PAPLFNCL is incremented to level '3' (PAPLFNC3)
     >PAPLFNC3 adds DRA options support. DRA options is used in the
      implementation of DRA Open Thread TCB.
      In order to activate Open Thread, PAPLFNC3 must be specified
      on the INIT call.
    -PAPLDROP is a new one byte field added to support DRA options.
      Specify requested DRA options in this field on the PAPLINIT
      call.
     >PAPLOPSK (x'01') - Use subpool 132 for DIRCA storage
      This option is activated in the DRA automatically.
      It has been included in PAPLDROP to remain consistent with
      PAPLDLEV.
     >PAPLOSUS (x'02') - Single cycle commit support requested
      This option is activated in the DRA automatically.
      It has been included in PAPLDROP to remain consistent with
      PAPLDLEV.
     >PAPLOP31 (x'04') - Allocate PCBs(DIRCA) in 31 bit storage
     >PAPLOOTT (x'08') - Open Thread TCB activation requested
    -PAPLDLEV contains feedback flags set by the DRA on return to
     the caller for a DRA INIT request (PAPLFUNC=PAPLINIT(x'01')).
     >PAPLPSK  (x'01') - Subpool 132 supported
                         This flag already exists
     >PAPLSUPD (x'02') - Single cycle commit supported
                         This flag already exists
     >PAPLPL31 (x'04') - PCBs will be allocated above the line
                         This flag already exists
     >PAPLOTCB (x'08') - flag added to field PAPLDLEV and indicates
                         that the DRA is using Open Thread TCB.
                         This is a new flag
    -PAPLCFLG contains special processing flags for thread, resync,
     and thread purge requests.
     >PAPLUFXT (x'02') - Open Thread TCB unfixed thread TCB
                         This is a new flag
    DFSDRARC
    --------
    Define new return codes, add reason codes.
    New and changed return codes:
    -----------------------------
     -Rename return code RCREXT to RCPARM
     -Add new return code RCESTAFL - Set thread ESTAE failed
    New reason codes:
    -----------------
      DRSNOK     0     Good reason code
    Reason codes for RCPARM (36)
    ----------------------------
      DRSFNCLV X'0004' DRA function level invalid
      DRSDBCID X'0008' DBCTL id not specified/invalid
      DRSUSRID X'000C' USERID parm invalid
      DRSMINMX X'0010' MIN or MAX thread parm invalid
      DRSFPBUF X'0014' FPBUF parm invalid
      DRSFPBOF X'0018' FPBOF parm invalid
      DRSCNBA  X'001C' NBA parm invalid
      DRSSUSPX X'0020' No suspend exit specified
      DRSRESMX X'0024' No resume exit specified
      DRSCNTLX X'0028' No control exit specified
    Reason codes for RCLOADE (48)
    -----------------------------
      DRSPRP   X'0004' Load DFSPZPxx failed
      DRSVC00  X'0008' Load DFSVC000 failed
      DRSPXPRM X'000C' Load DFSPRPX0 failed
      DRSPRC10 X'0010' Load DFSPRC10 failed
      DRSPRA10 X'0014' Load DFSPRA10 failed
      DRSPAT00 X'0018' Load DFSPAT00 failed
      DRSPAT10 X'001C' Load DFSPAT10 failed
    Changed parts:
    --------------
    DBFIRC10 - Check for DRA Open Thread
    DFSAERA0 - Accept function level 3
    DFSAERG0 - Change SSOB call to use new token field for ODBA
               threads
    DFSCDMP0 - Call SETRP in the proper key
    DFSCPY00 - Check for Open Thread type
    DFSCPY50 - Check for Open Thread type
    DFSDASC0 - Check for Open Thread type
    DFSDASP0 - Create WLM PB token on schedule for Open Thread type
    DFSDASS0 - Support for Open Thread type
    DFSDAST0 - Support for Open Thread type
    DFSDCPY0 - Support for Open Thread type
    DFSEF00F - Recompile for IPST changes
    DFSFPAT0 - Thread estae. Skip estae processing if thread is not
               actively processing a DRA thread request. Move
               processes from ETXR routine to estae as ETXR routine
               is not established in Open Thread environment.
    DFSFPRA0 - Convert to branch relative.  Logic changes to
               account for Open Thread unique processing during DRA
               termination.
    DFSLLKX0 - Add check for DRA open thread region type.
    DFSPAT00 - Recompile for DRA block changes. Change ESTAE call
               to ESTAEX.
    DFSPAT10 - New module to process all Open Thread thread
               requests.
    DFSPAT20 - Support for Open Thead type
    DFSPDLI0 - Support for Open Thread type
    DFSPINI0 - Support for Open Thread type
    DFSPNRT0 - Add logic to process /STO thread command for Open
               Thread type
    DFSPRA10 - DRA initialization changes for Open Thread TCB
               support
    DFSPRA30 - DRA thread allocation support for Open Thread type
    DFSPRA40 - DRA thread termination support for Open Thread type
    DFSPRC10 - Delete DFSPAT10 during DRA cleanup
    DFSPRRA0 - DRA control TCB support for Open Thread type
    DFSPRRC0 - DRA Open Thread type support.
    DFSPSCH0 - Modify SSOB call to use Open Thread token
    DFSPSYN0 - Pass Open Thread token in the SSOB open thread token
               field
    DFSPZP00 - Recompile for changes to DFSPRP macro and support
               function level 3
    DFSV4100 - /Stop thread changes for Open Thread type
    DFSIDT   - Define new bit for Open Thread type regions
    DFSPAC   - Define new flags and bits for support of Open Thread
    DFSPAPL  - Define new flags and bits for support of DRA Options
               and Open Thread TCB
    DFSPAT   - Define new flags in the PATE for Open Thread call in
               progress and Unfixed TCB in affect.
    DFSPRP   - Add FUNCLV=3, DRA Options support
               Add PRPDROP for DRA options requests.
    DFSSSOB  - New fields defined for FUNC=PARSVC calls to support
               Open Thread TCB tokens.
    IPST     - Define new region type in PSTTERM , PSTCOTT for Open
               Thread type
    PARMBLK  - New type in RCTYP1, RCOTPAR for Open Thread type
    Document updates:
    ----------------------------------------------------------------
    Release Planning Guide
    ----------------------------------------------------------------
    IMS DRA enhancement overview
    The IMS Version 12 DRA thread enhancement provides the option
    for the DRA clients to direct the DRA not to attach dedicated
    DRA thread task control blocks (TCBs). By not doing so, the
    overhead of TCB switching is avoided and parallel processing
    can be improved.
    CICS TS 4.2 takes advantage of the IMS Version 12 DRA thread
    enhancement.
    ----------------------------------------------------------------
    Programming for IMS: System programming APIs
    Database Resource Adapter (DRA)
    CCTL Initiated DRA function requests
    ----------------------------------------------------------------
    INIT Request
    ------------
    DRA Open Thread TCB allows the CCTL to direct the DRA not to
    attach dedicated DRA thread TCBs and allow DRA thread requests
    to be processed on the CCTL application TCB.
    The DRA Open Thread TCB option is either in use or not in use
    for the duration of the instance of the DRA.
    Field Contents
    To request DRA Open Thread TCB activation:
    PAPLFNCL = 3 (PAPLFNC3)
    PAPLOOTT
     Request the DRA to use the Open Thread TCB option.
     If this bit is set (X'08'), the DRA will activate Open
     Thread TCB if supported by the DRA. Check PAPLDLEV to
     determine if it has been activated.
    After the INIT request, the DRA returns the following data to
    the CCTL in INIT PAPL
    If DRA Open Thread TCB is activated:
    PAPLDLEV flag field
        PAPLOTCB (x'08') set to 1
    If PAPLOTCB is not set to 1, the DRA is not using the Open
    Thread TCB option.
    SCHED request
    -------------
    If DRA Open Thread TCB is active, in general, all thread
    requests process under the caller's TCB. The suspend and
    resume exits will not be called during normal thread
    processing.
    Field Contents
    PAPLUFXT
     Unfixed TCB
      Set PAPLUFXT to 1 on the schedule call to indicate to
      the DRA that thread TCB might not be the same TCB for
      the duration of the thread. The TCB might change between
      the time that the PSB is scheduled and the time the PSB
      is unscheduled and the thread is terminated.
    ----------------------------------------------------------------
    Installing IMS: System Definition
    Other Control Statements used in IMS environments
    Database Resource Adapter startup table for CCTL regions
    ----------------------------------------------------------------
    MINTHRD=
      Is the minimum number of threads to be available at any
      given time. The maximum number is 999. The default is 1.
    
      When the DRA Open Thread TCB option is active, this value
      refers to the number of DRA threads that are SIGNED ON to
      IMS.
      When the DRA Open Thread TCB option is inactive, this value
      refers to the number of DRA thread TCBs that remain attached
      and SIGNED ON to IMS.
    ----------------------------------------------------------------
    Troubleshooting for IMS: IMS Messages and Codes
    IMS Component Codes
    DBCTL return codes
    Return codes from requests under the DRA function
    ----------------------------------------------------------------
    Reason Codes for Return Code 36
    -------------------------------
    0004 DRA function level invalid
    0008 DBCTL id not specified/invalid
    0012 USERID parm invalid
    0016 MIN or MAX thread parm invalid
    0020 FPBUF parm invalid
    0024 FPBOF parm invalid
    0028 NBA parm invalid
    0032 No suspend exit specified
    0036 No resume exit specified
    0040 No control exit specified
    Reason Codes for Return Code 48
    -------------------------------
    0004 Load DFSPZPxx failed
    0008 Load DFSVC000 failed
    0012 Load DFSPRPX0 failed
    0016 Load DFSPRC10 failed
    0020 Load DFSPRA10 failed
    0024 Load DFSPAT00 failed
    0028 Load DFSPAT10 failed
    ×**** PE11/09/10 FIX IN ERROR. SEE APAR PM47327  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PM31420

  • Reported component name

    IMS V12

  • Reported component ID

    5635A0300

  • Reported release

    200

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    YesSpecatt / New Function / Xsystem

  • Submitted date

    2011-01-27

  • Closed date

    2011-08-18

  • Last modified date

    2013-05-21

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

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

    PM31729 UK70991

Modules/Macros

  •    DBFIRC10 DFSAERA0 DFSAERG0 DFSCDMP0 DFSCPY00
    DFSCPY50 DFSDASC0 DFSDASP0 DFSDASS0 DFSDAST0 DFSDCPY0 DFSDRARC
    DFSEF00F DFSFPAT0 DFSFPRA0 DFSIDT   DFSLLKX0 DFSPAC   DFSPAPL
    DFSPAT   DFSPAT00 DFSPAT10 DFSPAT20 DFSPCRP0 DFSPDLI0 DFSPINI0
    DFSPNRT0 DFSPRA10 DFSPRA30 DFSPRA40 DFSPRC10 DFSPRP   DFSPRRA0
    DFSPRRC0 DFSPSCH0 DFSPSYN0 DFSPZP00 DFSSSOB  DFSV4100 HMK1200J
    IPST     PARMBLK
    

Fix information

  • Fixed component name

    IMS V12

  • Fixed component ID

    5635A0300

Applicable component levels

  • R200 PSY UK70991

       UP11/08/20 P F108

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