A fix is available
APAR status
Closed as program error.
Error description
DFHDS0002 CICSREGN A severe error (code X'0070') has occurred in module DFHDSSR. This problem is occurs when a dozen or more tasks are waiting in a FCPSSUSP suspend, and one of these tasks is purged about the same time another task is releasing a string and resuming all the tasks that are waiting in the FCPSSUSP wait. So it looks like it is a race between the task that got purged, and the task that is doing the resuming. If the resume happens before the next suspend, all is well. If the resume happens after the next suspend, you get the problem. Additional Symptom(s) Search Keyword(s):
Local fix
n/a
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: DFHDS0002 A severe error (CODE X'0070') * * occurred in module DFHDSSR. * **************************************************************** The problem was the result of a race condition between multiple transactions accessing CICS file control under open TCBs. A transaction suspended on a file string wait (FCPSSUSP) for a local VSAM file. Another transaction was completing its file request and began to process the chain of transactions waiting to be resumed, to let them acquire the strings they wanted. The chain of waiters to be resumed was removed from the FCT anchor under a shared lock for string manipulation. This lock was then released before the transactions were each called in turn to be resumed. Meanwhile, the original transaction was forcepurged and redispatched from its FCPSSUSP suspend. It acquired an exclusive lock to see if it was waiting for a string, but by this point the chain of waiters had been removed from the FCT prior to being resumed. This meant the original transaction did not find itself on the chain of waiters and so did not resume itself to the CICS dispatcher. The logic assumed another transaction must have performed the resume on its behalf in such a case. However, the iteration of the chain to resume all the transactions awaiting a string had yet to reach the original transaction's VSWA on the chain, before that transaction begun its forcepurge abend processing, and eventually called the CICS dispatcher to suspend as part of the abend. Since the transaction's DTA's SUSPEND_RESUME_AREA still showed purged and not reset, the dispatcher treated this as an invalid state transition since suspend cleanup work was still pending. It resulted in the DFHDS0002 abend and system dump. KEYWORDS: fct_string_head SUSP_CLEANUP_PENDING msgdfhds0002 dfhds0002 ds0002 0002 ds
Problem conclusion
DFHFCVS1 routine release_strings has been changed to maintain the shared string lock until any waiting transactions have been resumed. This prevents a purged waiter from incorrectly assuming that it is not awaiting a resume, since it requires the exclusive string lock to be able to make this determination.
Temporary fix
Comments
APAR Information
APAR number
PH23250
Reported component name
CICS TS Z/OS V5
Reported component ID
5655Y0400
Reported release
100
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-03-12
Closed date
2020-05-12
Last modified date
2020-06-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI69441 UI69442
Modules/Macros
DFHFCVS
Fix information
Fixed component name
CICS TS Z/OS V5
Fixed component ID
5655Y0400
Applicable component levels
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"}],"Line of Business":{"code":"LOB35","label":"Mainframe SW"}}]
Document Information
Modified date:
02 June 2020