A fix is available
APAR status
Closed as program error.
Error description
A CICS task is purged while control is in DB2. During abend processing for the task a DFHDS0002 0204 error occurs: . DFHDS0002 A severe error (code X'0204') has occurred in module DFHDSTCB. . After the DS0002 0204 error, the user task hangs. Dispatcher shows the state of the task is RESUMED EARLY. The task can't be purged or forcepurged, and the associated DB2 thread cannot be cancelled. . At the time of the purge, control of the task was over in DB2. The current program for the task is defined API(OPENAPI), EXECKEY(CICS). This means that the application is designated to run ABTERM_ALLOWED(YES) on an L8 TCB. . After the purge of the task while in DB2, the L8 TCB is hibernated pending termination of the user task. The purge causes the task to start abending AD2R. Since the L8 TCB is abending, the task is now running on the QR TCB. LE is called for Rununit_End_Invocation. As this is an abnormal end, LE starts to record diagnostic data to CESE which triggers a series of EXEC CICS commands. . At the end of every EXEC CICS command, DFHEIP tests the EIS_ABTERM_ALLOWED_SWITCH and decides to set the state of the task to ABTERM_ALLOWED(YES) since the current program was defined OPENAPI. However, this is wrong since at this point the task is now running on the QR TCB which should never run ABTERM_ALLOWED(YES). . At the start of the next EXEC CICS command DFHEIP checks the current TCB. Since this is now the QR, DFHEIP decides there is no need to switch back to ABTERM_ALLOWED(NO). So the task ends up running in an incorrect dispatcher state that is only detected if the task happens to suspend for some reason. Once the task suspends, the DFHDS0002 0204 error is detected. After the error, the task will hang in a RESUMED_EARLY state. The L8 TCB remains also since it will not terminate until the user task terminates. The DB2 thread can't be cancelled because DB2 is not driven for cancel thread processing until the TCB goes through end-of-task (EOT) processing. . Additional Symptom(s) Search Keyword(s): KIXREVxxx ABTERM_YES ABTERM_NO CSP: TS002526956
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: A task that is running an openapi * * program is within DB2. If this task is * * forcepurged at this time, severe error * * DFHDS0002 can be issued. The task does * * not end and the corresponding open TCB * * is not released. * **************************************************************** While an openapi and CICS key application is running on an L8 TCB within DB2 the task is purged. The L8 TCB is hibernated awaiting end of task processing. Since the user task is abending it is now on the QR TCB and issues abend AD2R. This abend is percolated back up the stack to DFHAPLI1. At this point CICS attempts to move the task back to its TCB, however the L8 is unavailable. Eventually the task issues some GETMAINS which lock clash with another task that is also issuing GETMAINS.The first task goes into a suspend where DISPATCHER notices that the QR TCB is in the wrong dispatcher state of ABTERM_ALLOWED(YES). The task issues severe error DFHDS0002 and the task goes into a RESUMED_EARLY state hang. As the task does not end, the L8 TCB is never awakened by end of task processing to be released leaving the thread in Db2. Additional Keywords: msgDFHDS0002 DS0002 X'0204' 0204
Problem conclusion
DFHAPLI1 has been altered so that when the change_mode request fails, CICS also sets the eis_abterm_allowed_switch to off for openapi applications, so that the task running on the QR TCB is not set to ABTERM_ALLOWED(YES).
Temporary fix
Comments
APAR Information
APAR number
PH15887
Reported component name
CICS TS Z/OS V5
Reported component ID
5655Y0400
Reported release
000
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-08-20
Closed date
2019-12-23
Last modified date
2020-01-03
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI67165 UI67166 UI67167
Modules/Macros
DFHAPLI1 DFHAPLJ1 DFHAPLX1
Fix information
Fixed component name
CICS TS Z/OS V5
Fixed component ID
5655Y0400
Applicable component levels
R000 PSY UI67166
UP19/12/24 P F912 ¢
R100 PSY UI67167
UP19/12/24 P F912 ¢
R200 PSY UI67165
UP19/12/24 P F912 ¢
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"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.3","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.3","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
03 January 2020