A fix is available
APAR status
Closed as program error.
Error description
Two interleaving CICS tasks are working with the same logically recoverable Transient Data (TD) queue. If task1 has written an uncommitted record to the queue, task 2 has to suspend on td_read to await the records to be committed. Task 1 does a rollback. Then task 2 is posted as expected and run into a delay. This allows task1 to write another record to the queue. When task 2 comes out of the delay, CICS tries to unlock the DCT again. This leads to unlock failure. In the CICS trace the following exception entry is recorded: . AP F621,TDB *EXC* - Failed_to_unlock_DCTE - FUNCTION(UNLOCK) LOCK_TOKEN(5955A7F0) MODE(EXCLUSIVE) .
Local fix
n/a
Problem summary
**************************************************************** * USERS AFFECTED: All * **************************************************************** * PROBLEM DESCRIPTION: EXEC CICS READQ command returns ERROR * * when reading a logically recoverable * * transient data queue. * **************************************************************** * RECOMMENDATION: * **************************************************************** A task has written to a logically recoverable transient data queue. Before it commits the written data, another task reads the queue. As the data is uncommitted, the second task suspends until the data is committed. DFHTDB releases the lock on the DCT entry before suspending the task. The first task abends and backs out the data it wrote to the queue. It then writes data back to the queue once more. When the second task is resumed, it sees that the queue still has uncommitted data and so has to suspend again to wait for this to be committed by the writing task. The cloop code in DFHTDB branches back to reissue the suspend. DFHTDB tries to unlock the DCT entry once more but the task no longer has the lock on the table and so the unlock fails. CICS issues exception trace entry AP F621 (Failed_to_unlock_DCTE). It primes TDTD_RESPONSE to disaster. When the READQ completes, CICS returns the disaster to the API layer and EIP returns ERROR on the command. Keywords: TD APF621 TDB
Problem conclusion
DFHTDB has been modified to reacquire the lock on the DCTE after the suspend has completed with an ok response. This allows the logic in the cloop routine to iterate back and release the lock validly before suspending once more if required.
Temporary fix
FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PI48783
Reported component name
CICS TS Z/OS V5
Reported component ID
5655Y0400
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2015-09-17
Closed date
2015-11-06
Last modified date
2015-12-15
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI32879 PI54161 PI54162
Modules/Macros
DFHTDB
Fix information
Fixed component name
CICS TS Z/OS V5
Fixed component ID
5655Y0400
Applicable component levels
R900 PSY UI32879
UP15/11/20 P F511
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.2","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.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
15 December 2015