IBM Support

PI36541: EXTRA CHANGE_MODE WHEN GOING FROM QR TCB BACK TO OPEN TCB.

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • You are running a threadsafe program and have
    CONCURRENCY=REQUIRED specified.  You are running on an OPEN
    TCB, your program does a LINK PROG to a non-threadsafe program
    and CICS switches to the QR TCB to run.
    .
     Once the non-threadsafe program is done CICS returns back to
    the OPEN TCB.  In doing so you find CICS actually does three
    TCB CHANGE_MODE's to get back to the OPEN TCB.  Instead of just
    doing one CHANGE_MODE from the QR TCB to the OPEN TCB.
    .
     So an extra CHANGE_MODE to get back to the OPEN TCB occurs in
    order to do a  DISSOCIATE_THREAD again and then back to the QR
    and then finally to the OPEN TCB.
    
    Additional Symptom(s) Search Keyword(s): KIXREVDAM
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: An additional TCB change mode takes     *
    *                      place when linking to a                 *
    *                      concurrency(required) program.          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    CICS TS 5.1 has improved the performance of CICS Java
    applications using JDBC/SQLJ by allowing DB2 access from the T8
    TCB rather than forcing a switch to an L8 TCB as in previous
    releases. The previous mechanism was required since DB2 is
    called under the L8 TCB at end of task syncpoint, when the
    T8 TCB has gone away, and so needed the L8 to be the CICS
    TCB associated with the DB2 thread. With the new mechanism,
    the T8 TCB can call DB2 and be associated with the thread;
    however, the CICS RMI has a switch_application_environment
    mechanism that allows DB2 to dissociate the TCB from the
    DB2 thread during certain operations, such as a subsequent
    EXEC CICS LINK command. Further calls to DB2 (for API or
    syncpoints) can reassociate the thread with the TCB in
    use at the time.
      The TRUE interest profile bit UEFMSWAE is used to indicate
    that a task has an interest in switch application
    environments - DFHD2EX1 sets it on when a call to DB2 is made.
    However, the bit is not turned off when a dissociate call to
    DB2 occurs. This means that subsequent switch_application_
    environment calls will invoke the CICS RMI and call DFHD2EX1
    and DFHD2D2, before the CICS DB2 attach logic determines that
    no dissociation is required. Since the TRUE is OPENAPI, it
    requires a switch to the L8 TCB in order to determine this.
      In the customer's case, a concurrency(required) program
    called DB2 (associating its open TCB with the DB2 thread).
    It then linked to a concurrency(quasirent) program, which
    drives the switch_application_environment logic and called
    DB2 to dissociate the thread from the TCB. When the new
    program issued its own link to a concurrency(required) program,
    CICS switched from QR to L8 in order to call the CICS DB2
    TRUE, only to find no dissociatation was required. CICS
    returned to QR, before switching back to the L8 to drive the
    concurrency(required) program. This was an unnecessary TCB
    switch since the DB2 thread was already dissociated at this
    point in time.
    KEYWORDS: CHANGE_MODE DFHDSAT DFHDSATM DFHAPEXM
              apex_switch_application_environment
    

Problem conclusion

  • DFHD2EX1 has been changed to switch UEFMSWAE off when a
    dissociate call to DB2 has taken place.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

  • ×**** PE15/12/23 FIX IN ERROR. SEE APAR PI54515  FOR DESCRIPTION
    

APAR Information

  • APAR number

    PI36541

  • Reported component name

    CICS TS Z/OS V5

  • Reported component ID

    5655Y0400

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2015-03-06

  • Closed date

    2015-04-20

  • Last modified date

    2016-02-09

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

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

    UI26932 UI26933

Modules/Macros

  • DFHD2EX1
    

Fix information

  • Fixed component name

    CICS TS Z/OS V5

  • Fixed component ID

    5655Y0400

Applicable component levels

  • R800 PSY UI26932

       UP15/05/02 P F505

  • R900 PSY UI26933

       UP15/05/02 P F505

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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.1","Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]

Document Information

Modified date:
22 July 2020